Frage
Nach MSbuild hat meine Lösung gebaut (mit einer asp.net Website) und das WebDeployment Projekt erbaut und die Website in dem Verzeichnis _PublishedWebsites:
c:. \ Mybuilds \ buildName \ Daily_20090519.3 \ Release_PublishedWebsites \ MyWebSite
Wie kopiere ich dies mit dem festen Verzeichnis, in dem Punkt für den Test Webseite IIS?
Ich habe eine Menge Code-Schnipsel gefunden, aber ich kann nicht scheinen, einen zu finden, dass dieses Verzeichnis Namensänderung die Tatsache Rechnung nehmen.
Lösung
Das ist ziemlich einfach. Sie können das Projekt bearbeiten und etwas ähnlich dem folgenden Text einfügen.
<PropertyGroup>
<OutputDest>$(MSBuildProjectDirectory)\..\OutputCopy\</OutputDest>
</PropertyGroup>
<Target Name="AfterBuild">
<!-- Create an item with all the output files -->
<ItemGroup>
<_OutputFiles Include="$(OutputPath)**\*" Exclude="$(OutputPath)obj\**\*" />
</ItemGroup>
<!-- You probably don't want to include the files in the obj folder so exclude them. -->
<Message Text="OutputDest : $(OutputDest)" />
<Copy SourceFiles="@(_OutputFiles)"
DestinationFiles="@(_OutputFiles->'$(OutputDest)%(RecursiveDir)%(Filename)%(Extension)')"/>
</Target>
Ist das, was Sie suchen?
My Book: Innerhalb der Microsoft Build Engine: Mit MSBuild und Team Foundation Build
Andere Tipps
Ich verwende andere Technik.
<PropertyGroup>
<BinariesRoot>c:\BinariesForIis\</BinariesRoot>
</PropertyGroup>
Die c:\BinariesForIis\
wird für die direkte Ausgabe kompilierten Binärdateien verwendet werden (vor dem Kopieren ...\Daily_20090519.3\Release_
...).