Pregunta v11.0 \ WebApplications \ Microsoft.WebApplication.targets no se encontró cuando el archivo realmente hace referencia a v10


Primero algunos antecedentes. Al final de 2012, migramos nuestra solución vs2008 a vs2010, pero seguimos apuntando a .NET 3.5. (¡No sé nada más que lo último y mejor aquí!)

No habíamos tenido ningún problema con esta configuración hasta hace unas semanas cuando la gente comenzó a recibir estos errores:

"foo.csproj" (Rebuild target) (16:5) ->
  C:\...\foo.csproj(142,3): error MSB4019: The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk.

Lo interesante es que si nos fijamos en el archivo de proyecto, hace referencia a v10, que tiene sentido porque no usamos Visual Studio 2012.

Este error nos golpeó a varios de nosotros a la vez e incluso en las ramas de código más antiguas que no han cambiado en meses.

Sospecho que se introdujeron algunas actualizaciones en nuestras máquinas que confundieron las cosas, pero no sé qué hacer al respecto.

La solución a corto plazo ha sido instalar VS 2012 y no usarlo, pero espero algo un poco más limpio que eso.


75
2017-07-02 19:12


origen


Respuestas:


Me encontré con el mismo problema con Visual Studio 2013. Resultó que estaba usando la versión anterior de MSBuild, la que se envía con .NET Framework, desde la línea de comandos. Microsoft ahora está lanzando MSBuild como parte de Visual Studio y también como un instalador separado (http://blogs.msdn.com/b/visualstudio/archive/2013/07/24/msbuild-is-now-part-of-visual-studio.aspx)

La solución fue utilizar la nueva versión de MSBuild.exe ubicada en C:\Program Files (x86)\MSBuild\12.0\Bin. Una vez que hice eso, todos los errores de destino desaparecieron.

EDIT 1

Como se menciona en los comentarios, cada nueva versión de MSBuild trae consigo un nuevo directorio. Para Visual Studio 2015, use C:\Program Files (x86)\MSBuild\14.0\Bin.

EDIT 2

Como se mencionó en los comentarios, para Visual Studio 2017, use C:\Program Files (x86)\Microsoft Visual Studio\2017\<Edition>\MSBuild\15.0\Bin\MSBuild.exe.


106
2017-11-07 01:43



Si tiene un servidor de compilación que no tiene VS2012 instalado, puede solucionarlo

a) instalar el MSBuild.Microsoft.VisualStudio.Web.targets paquete a su solución, y

b) reemplazando esta línea en el archivo .csproj:

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

Con esta línea apuntando al paquete nuget

<Import Project="..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.11.0.2.1\tools\VSToolsPath\WebApplications\Microsoft.WebApplication.targets" Condition="true" />

EDITAR

Como @joedragons señala que la versión en la línea actualizada debe coincidir con la versión del paquete nuget, es decir, reemplazar targets.11.0.2.1 con targets.x.x.x.x para la versión actual.


49
2017-10-28 03:07



Una solución simple a este problema:

Ve a la siguiente ruta:

C: \ Archivos de programa (x86) \ MSBuild \ Microsoft \ VisualStudio

Verá la última versión V10.0, v11.0, v12.0 dependiendo de su instalación de Visual Studio 2010, 2012 o 2013.

Dupdo WebApplications carpeta desde el directorio de la última versión y pegar a otro.

Tus problemas deben ser resueltos.


23
2018-04-15 10:49



He encontrado que la instalación de la libre Visual Studio 2012 Shell (aislado) instala los archivos WebApplications v11 MSBuild. Más ligero que una instalación completa de Visual Studio 2012 y sin problemas de licencia.


9
2017-11-11 07:22



Guau. Acabamos de ver que sucede lo mismo en nuestra máquina de construcción. Usamos VS2010 y target .NET 4.0. Nuestros archivos de proyecto importan explícitamente la versión v10.0 de estos objetivos. Sin cambios en el código, ayer la compilación estaba bien y hoy está fallando con una queja sobre la versión v11.0 que falta. El .NET Framework 4.5.1 se instaló / actualizó anoche en esta máquina de compilación como una actualización automática. Vamos a forzar v10.0 con el parámetro (o env. Variable), pero esto ciertamente nos tomó por sorpresa ...

ACTUALIZACIÓN: Lo que es aún más extraño, es que parece ser el caso de que la versión actual de msbuild parece estar utilizando la primera línea del archivo sln para determinar qué VisualStudioVersion usar por defecto, mientras que la versión de ayer no:

Format Version 12.00

Probamos manualmente cambiando esto a 11.00 y la compilación comenzó a funcionar nuevamente.

En nuestro caso, aunque estamos apuntando y construyendo todo para 2010 / 4.0, algunos desarrolladores se han estado preparando para VS2012 (ya que MS afirmó que los archivos del proyecto son compatibles), y esta solución en particular se guardó por última vez (hace meses) en VS2012. Antes de hoy, eso no estaba causando un problema.


8
2018-01-15 16:57



Tuve el mismo problema. Se corrigió pasando por las soluciones mencionadas anteriormente. El problema se debe a que la versión adecuada de Visual Studio Tools (BuildTools) no está disponible en el servidor de compilación. Tal como se señaló anteriormente, esto se puede resolver instalando BuildTools, pero no es la opción en mi caso.

Aquí hay otra alternativa: use Nuget

Install-Package MSBuild.Microsoft.VisualStudio.Web.targets -Version 14.0.0.3

Identifique el proyecto de inicio e Instale los destinos web según la versión de Visual Studio que se esté utilizando. Se modificarán los siguientes archivos que incluyen los cambios requeridos

En packages.config:

<package id="MSBuild.Microsoft.VisualStudio.Web.targets" version="14.0.0.3" targetFramework="net45" />

En .csproj:

<Import Project="..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\build\MSBuild.Microsoft.VisualStudio.Web.targets.props" Condition="Exists('..\packages\MSBuild.Microsoft.VisualStudio.Web.targets.14.0.0.3\build\MSBuild.Microsoft.VisualStudio.Web.targets.props')" />

¡¡¡Espero que esto ayude!!! Buena suerte,

Aclamaciones,

Pavana


4
2017-12-15 07:55



Hack, pero lo resolvió copiando: c: \ Archivos de programa (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications *. * a c: \ Archivos de programa (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications *. *


3
2018-02-28 10:14