Estoy intentando actualizar nuestro servidor de compilación (jenkins) de Visual Studio 2015 a 2017. Estamos compilando a través de MS-Build. Descargué e instalé las herramientas de MS-Buld como se describe en esta respuesta . Si compilo mis proyectos, aparece un error que Microsoft.WebApplication.targets
no se encontró.
Error detallado:
error MSB4226: The imported project "C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications\Microsoft.WebApplication.targets"
Realicé una búsqueda en el directorio de MS-Build:
PS C:\Program Files (x86)\MSBuild> dir -Recurse -Filter "Microsoft.WebApplication.targets"
Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 11.01.2012 00:23 19654 Microsoft.WebApplication.targets
Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\WebApplications
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 22.07.2013 01:25 19995 Microsoft.WebApplication.targets
Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 06.07.2015 21:55 20118 Microsoft.WebApplication.targets
Directory: C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\WebApplications
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 22.07.2013 01:25 19995 Microsoft.WebApplication.targets
Como se puede ver, el archivo existe para las versiones antiguas del compilador, pero falta para la v15.0.
También instalé Visual Studio 2017 en el servidor de compilación. El proyecto se compila con éxito si compilo con Visual Studio 2017.
¿Alguna sugerencia de cómo resolver este problema? Una posible solución es generar un enlace simbólico desde el C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications
punto a los archivos antiguos v14.0 (ubicados debajo C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications
).
Gracias
fuente
Respuestas:
Parece que se echa en falta la carga de trabajo "Web herramientas de desarrollo construir":
Microsoft.VisualStudio.Workload.WebBuildTools
.Puede instalarlo descargando el instalador de herramientas de compilación desde aquí (VS2017) o aquí (VS2019) y luego ejecutándolo
o abriendo
vs_buildtools.exe
y seleccionando el componente "Herramientas de construcción de desarrollo web" en la GUI:fuente
Build Tools for Visual Studio 2017
conWeb development build tasks
el enlace que sin embargo todavía no creaC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications
folder..i también no veovs_buildtools.exe
..i buscado todo el `c:`$(MSBuildExtensionsPath)
se cambió aC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\MSBuild
stackoverflow.com/questions/47077150/… esoLa 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.
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.
VSB Pro todavía no construyó mi proyecto. Me arrojaron el mismo error anterior. El ingrediente secreto era simplemente copiar la
WebApplications
carpeta en laC:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0
queC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.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 sea.
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.
fuente
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:
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)\Microsoft\VisualStudio\v14.0</VSToolsPath> </PropertyGroup>
Después de reemplazar el
v14.0
byv$(VisualStudioVersion)
en laVSToolPath
etiqueta, el proyecto podría cargarse.También reemplacé el
v14.0
byv10.0
en laVisualStudioVersion
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)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath> </PropertyGroup>
Si no tiene estas líneas en su .csproj, entonces debe agregarlas manualmente justo ANTES de esta línea:
<Import Project="$(VSToolsPath)\Web\Microsoft.Web.Publishing.targets" Condition="'$(VSToolsPath)' != ''" />
En mi caso (mensaje de error ligeramente diferente pero el mismo problema) fue esta línea:
<Import Project="$(VSToolsPath)\WebApplications\Microsoft.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. 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").
fuente
Es fácil instalar las herramientas de construcción 2017, con la
WebBuildTools
opción ya incluida, usando chocolatey . Una vez que lo haya instalado , escriba lo siguiente en un símbolo del sistema de administración:Para VS 2019, es similar:
fuente
cinst visualstudio2017buildtools -params '--add Microsoft.VisualStudio.Workload.WebBuildTools' -y ; cinst microsoft-build-tools -y
Copiar
WebApplications
carpeta deC:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0
a
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0
O en su script de construcción agregue la siguiente línea antes de compilar
Copy-Item "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v14.0\WebApplications" "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v15.0\WebApplications" -Recurse -Force
Asegúrese de ejecutarlo con permisos elevados
fuente
¿Cómo crear la aplicación VS 2017 pro, asp.net MVC y compilarla con Jenkins?
use vs 2017 pro tanto en la máquina de desarrollo como en el servidor de compilación
Compruebe que VisualStudio esté configurado en 15
Importar proyecto = "$ (MSBuildExtensionsPath32) \ Microsoft \ VisualStudio \ v15.0 \ WebApplications \ Microsoft.WebApplication.targets" Condición = "falso"
configure la herramienta msbuild
en C: \ Archivos de programa (x86) \ Microsoft Visual Studio \ 2017 \ Professional \ MSBuild \ 15.0 \ Bin \ MSBuild.exe en el administrador de configuración global de jenkins
Con jenkins, ejecute el comando de Windows por lotes:
retore nugets: "C: \ Archivos de programa (x86) \ Jenkins \ tools \ nuget \ NuGet.exe" restaurar "C: \ Archivos de programa (x86) \ Jenkins \ workspace \ theapp_build \ theapp. sln "
Con jenkins, ejecute el lote de comandos de Windows:
Archivo de compilación de MSBuild: theapp.sln
Argumentos de la línea de comandos: / nologo / t: restore / t: rebuild / p: Configuration = "Debug" /p:VisualStudioVersion=15.0
fuente
Para VS 2019, arreglé esto copiando:
a
fuente
Solo uso Visual Studio Installer para actualizar Visual Studio Community 2017 , luego el problema está resuelto.
fuente