Ich habe dafür meinen Kopf gegen die Wand geschlagen. Nachdem ich durch die MSBuild-Ziele gewandert bin, bin ich auf etwas sehr "Opakes" gestoßen.
Lange Rede, kurzer Sinn: Versuchen Sie es mit dem neuen _WPPCopyWebApplication
. Es funktioniert auf meiner Maschine. Das alte _CopyWebApplication
unterstützt keine Transformationen aus Legacy-Gründen. Das ist, was ich tue:
msbuild /t:Rebuild /p:OutDir=..\publish\;Configuration=Release;UseWPP_CopyWebApplication=True;PipelineDependsOnBuild=False MvcApplication1\MvcApplication1.csproj
# UseWPP_CopyWebApplication = true requires PipelineDependsOnBuild = false
Lange Geschichte:
Werfen Sie einen Blick auf VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets
. Es ist so falsch. Finden _CopyWebApplication
in Zeile 70. Der Kommentar ist:
Die ursprüngliche _CopyWebApplication ist jetzt ein Legacy, können Sie es immer noch verwenden, indem $ (UseWPP_CopyWebApplication) zu wahr. Standardmäßig wird jetzt das Ziel _WPPCopyWebApplication in Microsoft.Web.Publish.targets verwendet. Es ermöglicht die Nutzung der web.config trsnformation. [alle sic]
Uh oh. UseWPP_CopyWebApplication
ist standardmäßig auf false gesetzt (Zeile 27), was sinnvoll ist, wenn Sie das vorhandene _CopyWebApplication
nicht brechen wollen. Wenn Sie es auf "true" setzen, wird das neue WPP-Material verwendet, das in VS 2010 eingeführt wurde. Ich ziehe es vor, ein "verstecktes" Ziel zu nennen.
WTF Microsoft? Danke für das Teilen dieses Jabe ... – jjxtra
Ich frage mich, ob es eine Möglichkeit gibt, das Kopieren von Bibliotheken, die über ein anderes Projekt referenziert wurden, zu korrigieren, damit es in msbuild output dir eingebunden wird? –
Ich habe versucht, dies mit WebDeploy zu tun, benutze/p: WebPublishMethod = FileSystem und benutze die pubxml-Dateien. Ich konnte es nicht zur Arbeit bringen. Diese Lösung ist der beste Weg, den ich gefunden habe. Ein Ratschlag: Ich konnte es ohne die OutDir-Eigenschaft nicht zum Laufen bringen. Sie müssen es in die Befehlszeile aufnehmen, auch wenn es in den Eigenschaften Ihres Projekts bereits definiert ist. –