Frage v11.0 \ WebApplications \ Microsoft.WebApplication.targets wurde nicht gefunden, wenn die Datei tatsächlich auf v10 verweist


Zuerst etwas Hintergrund. Ende 2012 haben wir unsere vs2008-Lösung auf vs2010 migriert, zielen jedoch weiterhin auf .NET 3.5 ab. (Ich weiß nur das Neueste und Beste hier!)

Wir hatten bis vor ein paar Wochen keine Probleme mit diesem Setup, als die Leute diese Fehler bekamen:

"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.

Das Interessante daran ist, dass wenn man sich die Projektdatei anschaut, sie v10 referenziert, was sinnvoll ist, weil wir Visual Studio 2012 nicht verwenden.

Dieser Fehler hat mehrere von uns auf einmal und sogar auf älteren Code-Zweigen getroffen, die sich seit Monaten nicht geändert haben.

Ich vermute, dass einige Updates auf unsere Maschinen gepusht wurden, die Dinge verwirren, aber ich weiß nicht, was ich dagegen tun soll.

Die kurzfristige Lösung war, VS 2012 zu installieren und nicht zu verwenden, aber ich hoffe auf etwas ein wenig sauberer als das.


75
2017-07-02 19:12


Ursprung


Antworten:


Ich habe das gleiche Problem mit Visual Studio 2013 festgestellt. Es stellte sich heraus, dass ich die alte Version von MSBuild - die, die mit dem .NET Framework ausgeliefert wird - über die Befehlszeile verwendete. Microsoft veröffentlicht MSBuild jetzt als Teil von Visual Studio selbst und als separates Installationsprogramm (http://blogs.msdn.com/b/visualstudio/archive/2013/07/24/msbuild-is-now-part-of-visual-studio.aspx).

Die Lösung bestand darin, die neue Version von MSBuild.exe zu verwenden, die sich in C:\Program Files (x86)\MSBuild\12.0\Bin. Sobald ich das getan hatte, verschwanden alle Zielfehler.

BEARBEITEN 1

Wie in den Kommentaren erwähnt, bringt jede neue Version von MSBuild ein neues Verzeichnis mit. Verwenden Sie für Visual Studio 2015 C:\Program Files (x86)\MSBuild\14.0\Bin.

BEARBEITEN 2

Wie in den Kommentaren erwähnt, verwenden Sie für Visual Studio 2017 C:\Program Files (x86)\Microsoft Visual Studio\2017\<Edition>\MSBuild\15.0\Bin\MSBuild.exe.


106
2017-11-07 01:43



Wenn Sie einen Build-Server haben, auf dem VS2012 nicht installiert ist, können Sie dies beheben

a) Installieren der MSBuild.Microsoft.VisualStudio.Web.targets Paket zu Ihrer Lösung und

b) Ersetzen dieser Zeile in der .csproj-Datei:

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

Mit dieser Linie, die auf das nugget-Paket zeigt

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

BEARBEITEN

Wie @joedragons darauf hinweist, sollte die Version in der aktualisierten Zeile mit der Version des nugget-Pakets übereinstimmen, d. H. Ersetzen targets.11.0.2.1 mit targets.x.x.x.x für die aktuelle Version.


49
2017-10-28 03:07



Eine einfache Lösung für dieses Problem:

Gehe zum folgenden Pfad:

C: \ Programme (x86) \ MSBuild \ Microsoft \ VisualStudio

Je nach Installation von Visual Studio 2010, 2012 oder 2013 wird die neueste Version V10.0, v11.0, v12.0 angezeigt.

Kopieren WebApplications Ordner aus dem Verzeichnis der letzten Version und einfügen zu anderen.

Ihre Probleme sollten gelöst werden.


23
2018-04-15 10:49



Ich habe festgestellt, dass die Installation kostenlos ist Visual Studio 2012-Shell (isoliert) installiert die WebApplications v11 MSBuild-Dateien. Leichter als eine vollständige Installation von Visual Studio 2012 und keine Lizenzprobleme.


9
2017-11-11 07:22



Beeindruckend. Wir haben genau das Gleiche auf unserer Build-Maschine gesehen. Wir verwenden VS2010 und Ziel .NET 4.0. Unsere Projektdateien importieren explizit die v10.0-Version dieser Ziele. Ohne Änderungen am Code war gestern der Build in Ordnung und heute versagt er mit einer Beschwerde über eine fehlende v11.0 Version. Das .NET Framework 4.5.1 wurde letzte Nacht auf diesem Build-Rechner als automatisches Update installiert / aktualisiert. Wir werden v10.0 mit dem Parameter (oder env. Variable) erzwingen, aber das hat uns sicherlich überrascht ...

UPDATE: Was noch seltsamer ist, ist, dass es scheint, dass die heutige Version von msbuild die erste Zeile der sln-Datei zu verwenden scheint, um festzustellen, welche VisualStudioVersion standardmäßig verwendet wird, während die Version von gestern nicht:

Format Version 12.00

Wir testeten das manuell auf 11,00 und der Build begann wieder zu arbeiten.

In unserem Fall, obwohl wir alles für 2010 / 4.0 planen und aufbauen, haben sich einige Entwickler auf VS2012 vorbereitet (da MS behauptet, dass die Projektdateien kompatibel sind), und diese spezielle Lösung wurde zuletzt (vor Monaten) in VS2012. Vor heute war das kein Problem.


8
2018-01-15 16:57



Ich hatte das gleiche Problem. Behoben, indem die oben aufgeführten Lösungen durchlaufen werden. Das Problem wird verursacht, weil eine entsprechende Version von Visual Studio Tools (BuildTools) auf dem Buildserver nicht verfügbar ist. Wie oben richtig ausgeführt, kann dies durch die Installation von BuildTools gelöst werden, ist aber in meinem Fall nicht die Option.

Hier ist eine andere Alternative - benutze Nuget

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

Identifizieren Sie das Startprojekt und installieren Sie die web.targets basierend auf der Version von Visual Studio, die verwendet wird. Die folgenden Dateien werden geändert, einschließlich der erforderlichen Änderungen

In packages.config:

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

In .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')" />

Hoffe das hilft!!! Viel Glück,

Prost,

Pavan


4
2017-12-15 07:55



Hack, aber löste es durch Kopieren: c: \ Programme (x86) \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ WebApplications *. * zu c: \ Programme (x86) \ MSBuild \ Microsoft \ VisualStudio \ v11.0 \ WebApplications *. *


3
2018-02-28 10:14