在上篇文章 利用 MSBuild 实现 Web Application 项目的每日构建(上) 中,零零碎碎的发表了一些代码。在这篇文章中,我会附上完整的代码。欢迎各位积极交流。 1.TestProject.proj < Project DefaultTargets ="Build" xmlns ="http://schemas.microsoft.com/developer/msbuild/2003" > <!-- Required Import to use MSBuild Community Tasks --> < Import Project ="$(MSBuildExtensionsPath)MSBuildCommunityTasksMSBuild.Community.Tasks.Targets" /> < PropertyGroup > < SolutionDir > $(SourceDir)$(SourceBranch)TestProject </ SolutionDir > < LatestBuildDir > $(BuildDir)Latest$(SourceBranch) </ LatestBuildDir > < TempDir > $(BuildDir)Temp </ TempDir > < ProjectReferences > $(SolutionDir)WebWeb.csproj </ ProjectReferences > < BuildDependsOn > BeforeBuild; CoreBuild; AfterBuild </ BuildDependsOn > </ PropertyGroup > < ItemGroup > < Configuration Include ="Debug" /> < Configuration Include ="Release" /> < PublicFiles Include ="$(SolutionDir)wwwroot***.*" /> </ ItemGroup > < Target Name ="BeforeBuild" > < Error Text =" The "WWWRoot" property or environment variable must be set." Condition ="'$(WWWRoot)' == ''" /> < Error Text =" The "SourceBranch" property or environment variable must be set." Condition ="'$(SourceBranch)' == ''" /> < Error Text =" The "SourceDir" property or environment variable must be set." Condition ="'$(SourceDir)' == ''" /> < Error Text =" The "BuildDir" property or environment variable must be set." Condition ="'$(BuildDir)' == ''" /> < Error Text =" The "BuildNumber" property or environment variable must be set." Condition ="'$(BuildNumber)' == ''" /> < MakeDir Directories ="$(LatestBuildDir)" Condition ="!Exists('$(LatestBuildDir)')" /> < Math .Subtract Numbers ="$(BuildNumber);5" > < Output TaskParameter ="Result" PropertyName ="NeedsToBeDeletedBuildNumber" /> </ Math.Subtract > < CreateProperty Value ="$(BuildDir)$(BuildNumber)$(SourceBranch)" > < Output TaskParameter ="Value" PropertyName ="DailyBuildDir" /> </ CreateProperty > < CreateProperty Value ="TestProject$(BuildNumber)" > < Output TaskParameter ="Value" PropertyName ="VirtualDirectoryName" /> </ CreateProperty > < CreateProperty Value ="$(WWWRoot)TestProject$(BuildNumber)" > < Output TaskParameter ="Value" PropertyName ="VirtualDirectoryPhysicalPath" /> </ CreateProperty > < CreateProperty Value ="TestProject$(NeedsToBeDeletedBuildNumber)" > < Output TaskParameter ="Value" PropertyName ="NeedsToBeDeletedVirtualDirectoryName" /> </ CreateProperty > < CreateProperty Value ="$(WWWRoot)TestProject$(NeedsToBeDeletedBuildNumber)" > < Output TaskParameter ="Value" PropertyName ="NeedsToBeDeletedVirtualDirectoryPhysicalPath" />