No se encontró Microsoft.WebApplication.targets en el servidor de compilación. ¿Cuál es tu solución?

Resuelto stacker asked hace 13 años • 0 respuestas

Al intentar compilar mi proyecto en el servidor de compilación, aparece el siguiente error:

Microsoft (R) Build Engine Version 4.0.30319.1
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\TeamData\Microsoft.Data.Schema.SqlTasks.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.
error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the <Import> declaration is correct, and that the file exists on disk.

Resolví este problema hace unos meses instalando Visual Studio 2010 en Build Server. Pero ahora estoy configurando un nuevo servidor desde cero y quiero saber si existe alguna solución mejor para resolver este problema.

stacker avatar Oct 21 '10 01:10 stacker
Aceptado

Para responder al título de la pregunta (pero no a la pregunta sobre el resultado que obtiene):

Copiar la siguiente carpeta desde su máquina de desarrollo a su servidor de compilación soluciona este problema si solo se trata de aplicaciones web

C:\Archivos de programa (x86)\MSBuild\Microsoft\VisualStudio\v10.0\WebApplications

Elimine x86 según cómo se rompa su compilación. Si tiene otros tipos de proyectos, probablemente necesitará copiar toda la carpeta msbuild.

Chris S avatar Mar 17 '2011 19:03 Chris S

La solución sería instalar paquetes redistribuibles en el agente del servidor de compilación. Se puede lograr de varias maneras, de las cuales 3 se describen a continuación. Elija uno que más le convenga.

Usar el instalador con UI

esta es la respuesta original

Ahora mismo, en 2017, puede instalar redistribuciones de aplicaciones web con MSBuildTools. Simplemente vaya a esta página que descargará las herramientas de MSBuild 2017 y, durante la instalación, haga clic Web development build toolspara instalar también estos objetivos: ingrese la descripción de la imagen aquí

Esto conducirá a la instalación de bibliotecas faltantes de C:\Program Files (x86)\Microsoft Visual Studio\2017\BuildTools\MSBuild\Microsoft\VisualStudio\v15.0\WebApplicationsforma predeterminada

Usar línea de comando

descargo de responsabilidad No he probado ninguna de las siguientes propuestas

Como sugirieron @PaulHicks y @WaiHaLee en los comentarios, también se puede instalar en modo sin cabeza (sin interfaz de usuario) desde CLI, lo que en realidad podría ser una forma preferible de resolver el problema al eliminar el servidor.

  • Solución A: usar el administrador de paquetes (choco)
choco install visualstudio2017-workload-webbuildtools
  • Solución B: ejecute el instalador en modo sin cabeza

    Tenga en cuenta que este es el mismo instalador que se propuso utilizar en la respuesta original.

vs_BuildTools.exe --add Microsoft.VisualStudio.Workload.WebBuildTools --passive
SOReader avatar Jun 22 '2017 15:06 SOReader

No se admite la creación y publicación de WAP si VS no está instalado. Dicho esto, si realmente no desea instalar VS, deberá copiar todos los archivos en %ProgramFiles32%\MSBuild\Microsoft\.

También deberá instalar la herramienta de implementación web . Creo que eso es todo.

Sayed Ibrahim Hashimi avatar Oct 22 '2010 01:10 Sayed Ibrahim Hashimi

UPD: a partir de VS2017, hay una carga de trabajo en Build Tools que elimina este problema por completo. Consulte la respuesta de @SOReader .

Si prefiere no modificar nada en el servidor de compilación y aún desea que el proyecto se construya fuera del control de código fuente, podría ser una buena idea poner los archivos binarios necesarios bajo control de código fuente. Deberá modificar la sección de importaciones en su archivo de proyecto para que se vea así:

<Import Project="$(SolutionDir)\BuildTargets\WebApplications\Microsoft.WebApplication.targets" />
<Import Condition="false" Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

La primera línea es la importación real desde la nueva ubicación relativa al directorio de la solución. La segunda es una versión desactivada ( Condition="false") de la línea original que permite que Visual Studio siga considerando su proyecto como un proyecto de aplicación web válido (ese es el truco que hace VS 2010 SP1).

No olvide copiar la C:\Program Files (x86)\Microsoft\VisualStudio\v10.0\WebApplicationscarpeta BuildTargetsa su control de fuente.

Andriy K avatar Oct 19 '2012 13:10 Andriy K

También puede usar el paquete NuGet MSBuild.Microsoft.VisualStudio.Web.targets , hacer referencia a ellos dentro de sus proyectos de Visual Studio y luego cambiar sus referencias como sugiere Andriy K.

Lloyd Holman avatar Aug 12 '2013 09:08 Lloyd Holman