visual-studio - studio - msbuild reduce verbosity
Falta MS-Build 2017 "Microsoft.WebApplication.targets" (6)
Estoy tratando de actualizar nuestro servidor de compilación (jenkins) de Visual Studio 2015 a 2017. Estamos construyendo a través de MS-Build.
He descargado e instalado las herramientas de MS-Buld como se describe en esta
answer
.
Si compilo mis proyectos me sale un error que no se encontró
Microsoft.WebApplication.targets
.
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 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 versiones antiguas del compilador, pero para v15.0 falta.
También he instalado Visual Studio 2017 en el servidor de compilación. El proyecto tiene éxito si se compila con Visual Studio 2017.
¿Alguna pista de cómo resolver este problema?
Una posible solución es generar un enlace simbólico desde
C:/Program Files (x86)/MSBuild/Microsoft/VisualStudio/v15.0/WebApplications
apunta a los viejos archivos v14.0 (ubicados en
C:/Program Files (x86)/MSBuild/Microsoft/VisualStudio/v14.0/WebApplications
).
Gracias
¿Cómo crear VS 2017 pro, asp.net MVC y compilarlo 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 = "false"
configurar la herramienta msbuild
a 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 lote de comandos de Windows:
restaurar 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 MSBuild: theapp.sln
Argumentos de la línea de comandos: / nologo / t: restore / t: rebuild / p: Configuration = "Debug" /p:VisualStudioVersion=15.0
Copie la carpeta
WebApplications
de
C:/Program Files (x86)/MSBuild/Microsoft/VisualStudio/v14.0
a
C:/Program Files (x86)/MSBuild/Microsoft/VisualStudio/v15.0
O en su script de compilació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
Es fácil instalar las herramientas de compilación 2017, con la opción
WebBuildTools
ya incluida, usando
chocolatey
.
Una vez que lo haya
installed
, escriba lo siguiente en un símbolo del sistema de administrador:
choco install visualstudio2017buildtools -y
Para VS 2019, es similar:
choco install visualstudio2019buildtools -y
La respuesta aceptada arriba 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 create 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 de 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 arrojó el mismo error anterior. La salsa secreta era simplemente copiar la carpeta de aplicaciones
WebApplications
enC:/Program Files (x86)/Microsoft Visual Studio/2017/BuildTools/MSBuild/Microsoft/VisualStudio/v15.0
aC:/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 está más allá de mí. Además, por qué la instalación por separado. VS17 instala una enorme cantidad de cosas. Build Tools está implícito, como siempre. Lo que sea.
Estoy publicando esta respuesta ya que 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.
Parece que le falta la carga de trabajo para las "herramientas de compilación de desarrollo web":
Microsoft.VisualStudio.Workload.WebBuildTools
.
Puede instalarlo descargando el instalador de herramientas de compilación desde here (VS2017) o here (VS2019) y luego ejecutando
vs_buildtools.exe --add Microsoft.VisualStudio.Workload.WebBuildTools
o abrir
vs_buildtools.exe
y seleccionar el componente "Herramientas de compilación de desarrollo web" en la GUI:
Tuve un problema similar después de haber actualizado de Visual Studio 2015 a 2017. Cuando trato de 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, trató de 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 es correcta y que el archivo existe en el disco en una de las rutas de búsqueda.
La solución a este error que encontré here .
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 la
v14.0
por
v$(VisualStudioVersion)
en la etiqueta
VSToolPath
, el proyecto podría cargarse.
También reemplacé la
v14.0
por la
v10.0
en la etiqueta
VisualStudioVersion
, 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, debe agregarlas manualmente 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 redefinición de
VSToolsPath
, mientras que los archivos más antiguos no.
Visual Studio nunca los agregó automáticamente al actualizar a una versión VS más nueva, 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").