MSBuild-Zielpaket nicht gefunden

73

Ich möchte mein VS2010-Webanwendungsprojekt für die Bereitstellung mit msdeploy verpacken. Auf der Entwicklungsmaschine kann ich dies tun mit:

MSBuild.exe "C:\path\to\WebApp.csproj" /target:package

Aber auf meinem Build-Server wird folgende Fehlermeldung angezeigt:

Fehler MSB4057: Das Ziel "Paket" existiert nicht im Projekt.

Was fehlt mir auf dem Build-Server?

Andrew Davey
quelle

Antworten:

110

Ich habe gerade funktioniert, ohne VS2010 zu installieren, indem ich die folgenden Schritte auf dem Build-Server ausgeführt habe:

  1. Wenn .NET Framework 4 nicht installiert ist, installieren Sie es
  2. Installieren Sie das Web Deployment-Tool unter http://www.iis.net/download/webdeploy
  3. Kopieren Sie aus dem Ordner C: \ Programme \ MSBuild \ Microsoft \ VisualStudio \ v10.0 auf Ihrem Entwicklungscomputer die Ordner "Web" und "Webanwendungen" in das entsprechende Verzeichnis auf Ihrem Buildserver.

Das scheint bei mir zu funktionieren

spmason
quelle
3
Stellen Sie außerdem sicher, dass Sie die .net 4-Version von MSBuild.exe verwenden! (in% windows% \ Microsoft.net \ Framework \ v4.0.30319)
AndyM
7
In meinem Fall bestand das Problem darin, dass ich über den Ordner "Webanwendungen" kopiert hatte, nicht jedoch über den Ordner "Web".
Willem
3
+1 Beachten Sie, dass das C:\Program FilesBit sein wird, c:\Program Files (x86)wenn Sie 32-Bit-MSBuild auf einem 64-Bit-Computer ausführen [wie in meinem Fall] (In meinem Fall war der WebTeil die fehlende Zutat - ich gehe davon aus Microsoft.WebApplications.targetsund / oder ignoriere stillschweigend das Fehlen des Microsoft.Web.Publishing. * .targets)
Ruben Bartelink
5
Vielen Dank! Für mich war der kritisch fehlende Ordner C: \ Programme \ MSBuild \ Microsoft \ VisualStudio \ v10.0 \ Web. Ich hatte bereits "WebApplications", aber nicht den Ordner "Web"
brodie
2
Es hat mein Problem mit 2 Korrekturen behoben: 1. Programme (x86) 2. "MSBuild \ Microsoft \ VisualStudio" hat 3 Unterverzeichnisse: v10.0, v11.0, v12.0. Ich verwende VS 2013 (v12.0). Das Problem wurde jedoch erst behoben, nachdem ich den Webordner von V10.0 auf v11.0 kopiert hatte. Es kann erwähnenswert sein, dass das Problem nach der Deinstallation von VS 2012 begann.
Gregory Khrapunovich
10

Ich weiß, dass es eine alte Frage ist, aber ich bin kürzlich auf dasselbe Problem gestoßen, und keine der Antworten hat geholfen. Mir fehlte folgende Datei auf meinem Build-Server:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio
    \v11.0\Web\Microsoft.Web.Publishing.targets

Es wird importiert von:

C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio
    \v11.0\WebApplications\Microsoft.WebApplication.targets

Hoffe das hilft jemandem wie mir :)

joozek
quelle
2
arbeitete für mich ... Ich hatte den Zielordner für Webanwendungen kopiert, aber nicht den Webordner ... Der Build würde erfolgreich sein, aber einfach nicht
bereitgestellt werden
Dies war das Problem für mich mit Visual Studio Build Tools 2017. Ich hatte die Workload "Web Development Build Tools" nicht ausgewählt, daher wurde das Web Publishing-Ziel nicht installiert. Durch Ändern der Installation wurde das Problem behoben.
Jeffrey Harmon
5

Sie können das Paket MSBuild.Microsoft.VisualStudio.Web.targets installieren . Es ist nicht erforderlich, Ziele manuell zu kopieren, um einen Server zu erstellen.

Der_Meister
quelle
Ich mag dies, da es tatsächlich zum Projekt hinzugefügt wird und automatisch auf die richtige Version verweist, anstatt zu versuchen, die csproj-Datei manuell zu ändern.
Gwasshoppa
du hast meinen Tag gerettet! :)
LeonardoX
3

Ich habe das gleiche Problem erlebt. Am Ende wurde das Problem behoben, indem Folgendes hinzugefügt wurde:

<PropertyGroup>
<VisualStudioVersion Condition="'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion>
<VSToolsPath Condition="'$(VSToolsPath)' == ''">$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)</VSToolsPath>
</PropertyGroup>

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

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

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

zu meiner .csproj fiie.

Contrashadow
quelle
1

Auf dem Build-Server muss .Net 4.0 installiert sein. Bei der Installation von .NET 4.0 wird das neue MSBuild 4.0 installiert, das das Packen von Webanwendungsprojekten unterstützt.

Wenn Sie msbuild.exe ausführen, stellen Sie außerdem sicher, dass Sie die Datei ausführen, die sich im .NET 4.0-Framework-Ordner befindet.

Paul Lemke
quelle
-1

Erwägen Sie auch die Verwendung von msbuild mit der Version, die der Version des Web Deployment-Tools entspricht. Ich habe das gleiche Problem wie das OP. Die Lösung bestand darin, msbuild auf buildServer von 4.5 auf 4.0 zu ändern.

andrey.leskov
quelle
-3

Um dieses Problem zu lösen, installieren Sie Visual Studio 2010 auf dem Build-Server und stellen Sie sicher, dass Sie die Visual Web DeveloperFunktion installiert haben.

Fitzchak Yitzchaki
quelle
5
Es ist nicht erforderlich, Visual Studio auf dem Buildserver zu installieren. Der Build / Deploy-Prozess hängt nur von einer Handvoll Dateien ab (siehe Spmasons Beitrag)
Noah Heldman