Saltar al contenido

Falta MS-Build 2017 “Microsoft.WebApplication.targets”

Solución:

Parece que le falta la carga de trabajo de las “Herramientas de compilación de desarrollo web”: Microsoft.VisualStudio.Workload.WebBuildTools.

Puede instalarlo descargando el instalador de herramientas de compilación desde aquí (VS2017) o aquí (VS2019) y luego ejecutándolo

vs_buildtools.exe --add Microsoft.VisualStudio.Workload.WebBuildTools

o apertura vs_buildtools.exe y seleccionando el componente “Herramientas de construcción de desarrollo web” en la GUI:

captura de pantalla de GUI

La respuesta aceptada anterior es técnicamente correcta, simplemente incompleta, un poco confusa, al menos para mí, y necesitaba un paso adicional para que Visual Build Professional funcionara.

  1. vs_buildtools.exe técnicamente no existe. Tuve que crear una pregunta preguntando dónde estaba ese archivo. No era obvio que vs_buildtools.exe es vs_buildtools _ *******. Exe y es el programa de instalación real. Además, el “-add ***” mencionado anteriormente es solo una abreviatura. Uno puede ir a la GUI y verificar ambas tareas del flujo de trabajo. Eso hace lo mismo. Terminé teniendo el archivo vs_buildtools, aunque no lo necesitaba.

  2. VSB Pro todavía no construyó mi proyecto. Me arrojaron el mismo error anterior. La salsa secreta era simplemente copiar el WebApplicationscarpeta en C:Program Files (x86)Microsoft Visual Studio2017BuildToolsMSBuildMicrosoftVisualStudiov15.0 para C:Program Files (x86)MSBuildMicrosoftVisualStudiov15.0. Luego reconstruí el proyecto y todo estuvo bien. Coloqué el archivo WebApplication.targets en la ubicación esperada.

Por qué Microsoft no pudo haber hecho eso, se me escapa. Además, por qué la instalación separada. VS17 instala una enorme cantidad de cosas. Build Tools está implícito, como siempre. Lo que.

Estoy publicando esta respuesta porque espero que ayude a otros. Caí en la trampa y perdí bastante tiempo con mi proyecto sin construir. Espero que esta respuesta aclare un poco las cosas.

Tuve un problema similar después de haber actualizado de Visual Studio 2015 a 2017. Cuando intento cargar el proyecto de la aplicación web, me arrojó el mensaje de error:

No se encontró el proyecto importado “C: Archivos de programa (x86) Microsoft Visual Studio 2017 Enterprise MSBuild Microsoft VisualStudio v14.0 WebApplications Microsoft.WebApplication.targets”. Además, intenté encontrar “WebApplications Microsoft.WebApplication.targets” en la (s) ruta (s) de búsqueda alternativa para $ (VSToolsPath) – “C: Archivos de programa (x86) MSBuild Microsoft VisualStudio v15.0”. Estas rutas de búsqueda se definen en “C: Users xxx AppData Local Microsoft VisualStudio 15.0_558e146f devenv.exe.config”. Confirme que la ruta en la declaración sea correcta y que el archivo exista en el disco en una de las rutas de búsqueda.

La solución a este error que encontré aquí.

En mi caso, el archivo .csproj contenía las siguientes líneas:

<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">14.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)MicrosoftVisualStudiov14.0</VSToolsPath>
</PropertyGroup>

Después de reemplazar el v14.0 por v$(VisualStudioVersion) en el VSToolPath etiqueta, el proyecto podría cargarse.

También reemplacé el v14.0 por v10.0 en el VisualStudioVersion etiqueta, como muestra la solución en el enlace anterior. Pero para mí también funcionó dejándolo en 14.0.

Así es como deberían verse estas líneas al final:

<PropertyGroup>
    <VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
    <VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)MicrosoftVisualStudiov$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>

Si no tiene estas líneas en absoluto en su .csproj, entonces debe agregarlas manualmente justo ANTES de esta línea:

<Import Project="$(VSToolsPath)WebMicrosoft.Web.Publishing.targets" Condition="'$(VSToolsPath)' != ''" />

En mi caso (mensaje de error ligeramente diferente pero el mismo problema) fue esta línea:

<Import Project="$(VSToolsPath)WebApplicationsMicrosoft.WebApplication.targets" Condition="'$(VSToolsPath)' != ''" />

Parece que los proyectos creados con versiones de Visual Studio desde 2011 contienen las líneas con la VSToolsPath redefinición, mientras que los archivos más antiguos no lo hicieron. Visual Studio nunca los agregó automáticamente al actualizar a una versión más reciente de VS, por lo que debe agregarlos si no están allí.

Fuente de esta información: https://developercommunity.visualstudio.com/content/problem/27735/project-fails-to-load-with-error-regarding-microso.html?childToView=123664#comment-123664 (haga clic en Mostrar más comentarios para ver el hilo de discusión completo; desafortunadamente, no puedo vincular directamente a los comentarios en esta sección “más”).

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *