Ich habe eine Lösung mit einer Reihe von Webprojekten und möchte, dass mein Buildserver automatisch Pakete für jedes Projekt erstellt. Ich kann (fast) alles arbeiten. Die Builds sind in Ordnung und die Pakete werden bei jedem Build erstellt. Aber nur, wenn ich kein PublishProfile in den MSBuild-Argumenten angeben. So wird es nur Standardwerte einfügen und meine Websites und solche nicht vorkompilieren. (Argumente sind /p:DeployOnBuild=True /p:IsAutoBuild=True /p:VisualStudioVersion=12.0
)TFS Build Server kann das Veröffentlichungsprofil nicht funktionieren: "Ich kann den gültigen AspnetCompilerPath nicht finden"
Ich möchte jedoch die Veröffentlichungsprofile (.pubxml) verwenden, die ich in Visual Studio erstellt habe. Jedes Projekt hat eine "Test.pubxml". Aber wenn ich den PublishProfile Parameter angeben, wird die Build nicht mit der folgenden Fehlermeldung (Argumente sind /p:DeployOnBuild=True;PublishProfile=Test /p:IsAutoBuild=True /p:VisualStudioVersion=12.0
):
C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v12.0\Web\Transform\Microsoft.Web.Publishing.AspNetCompileMerge.targets (411): Can't find the valid AspnetCompilerPath
Ja, die Datei Microsoft.Web.Publishing.AspNetCompileMerge.targets
in diesem Ordner nicht vorhanden ist. Ich kann die Projekte von Visual Studio auf meinem Entwicklungscomputer problemlos bereitstellen.
Ich verwende die folgenden: Windows Server 2012 R2 von Visual Studio Ultimate 2013 Update 1 (auf Build-Server installiert) Projekte sind für .Net 4.5.1
Das funktioniert! (Anscheinend wurde $ (Framework40Dir) auf das Msbuild-Verzeichnis und nicht auf das .NET-Framework gesetzt). –