0
是否有可能在構建期間或在buildevent或buildevent之後調用MSbuild發佈?我試圖從解決方案中發佈兩個Web項目。我正在使用文件系統發佈。這裏的要求是,構建解決方案應負責發佈這兩個Web項目。任何人都可以請建議嗎?調用MSbuild發佈
是否有可能在構建期間或在buildevent或buildevent之後調用MSbuild發佈?我試圖從解決方案中發佈兩個Web項目。我正在使用文件系統發佈。這裏的要求是,構建解決方案應負責發佈這兩個Web項目。任何人都可以請建議嗎?調用MSbuild發佈
我不會在構建後事件中放置太多的部署邏輯。它變得「脆弱」。
創建一個單獨的.msbuild文件,並在其中執行「額外」邏輯,而不是使用.csproj文件搞得太多。
下面是一個基本的例子。 將下面的xml放在一個文件調用「MyBuildAndDeploy.msbuild」中,將它放在與.sln(或.csproj)文件相同的文件夾中,然後使用命令行中的msbuild.exe「MyBuildAndDeploy.msbuild」執行 。
下面是構建主要解決方案然後將文件複製到某處的基本示例。
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="AllTargetsWrapper">
<PropertyGroup>
<!-- Always declare some kind of "base directory" and then work off of that in the majority of cases -->
<WorkingCheckout>.</WorkingCheckout>
<BuildResultsRootFolder>$(WorkingCheckout)\..\BuildResults</BuildResultsRootFolder>
</PropertyGroup>
<Target Name="AllTargetsWrapper">
<CallTarget Targets="BuildSolution" />
<CallTarget Targets="CopyBuildOutputFiles" />
</Target>
<Target Name="BuildSolution">
<MSBuild Projects="$(WorkingCheckout)\MySuperCoolSolution.sln" Targets="Build" Properties="Configuration=$(Configuration)">
<Output TaskParameter="TargetOutputs" ItemName="TargetOutputsItemName"/>
</MSBuild>
<Message Text="BuildSolution completed" />
</Target>
<Target Name="CopyBuildOutputFiles">
<MakeDir Directories="$(BuildResultsRootFolder)\$(Configuration)" Condition="!Exists('$(BuildResultsRootFolder)\$(Configuration)\')"/>
<ItemGroup>
<BuildOutputFilesExcludeFiles Include="$(WorkingCheckout)\**\*.doesnotexist" />
<BuildOutputFilesIncludeFiles Include="$(WorkingCheckout)\**\*.dll" Exclude="@(BuildOutputFilesExcludeFiles)" />
<BuildOutputFilesIncludeFiles Include="$(WorkingCheckout)\**\*.exe" Exclude="@(BuildOutputFilesExcludeFiles)" />
<BuildOutputFilesIncludeFiles Include="$(WorkingCheckout)\**\*.config" Exclude="@(BuildOutputFilesExcludeFiles)" />
<BuildOutputFilesIncludeFiles Include="$(WorkingCheckout)\**\*.pdb" Exclude="@(BuildOutputFilesExcludeFiles)" />
</ItemGroup>
<Copy SourceFiles="@(BuildOutputFilesIncludeFiles)"
DestinationFolder="$(BuildResultsRootFolder)\$(Configuration)\"/>
</Target>
</Project>