持续集成 - 构建脚本
现在让我们看看 MSBuild 文件的某些方面,看看它们的含义。从持续集成周期中了解这些方面非常重要。
构建脚本用于构建解决方案,该解决方案将成为整个持续集成周期的一部分。让我们看一下一般构建脚本,它是作为.Net中 Visual Studio 的一部分为我们的示例解决方案创建的。即使对于一个简单的解决方案来说,构建脚本也是一个相当大的脚本,因此我们将介绍其中最重要的部分。默认情况下,构建脚本将存储在与 Visual Studio 中的主解决方案同名的文件中。因此,在我们的例子中,如果您打开文件Simple.csproj,您将看到用于构建解决方案的所有设置。
依赖于所使用的 MSBuild 版本 - 以下设置将使用 CI 服务器上安装的 MSBuild 文件。
<VisualStudioVersion Condition = "'$(VisualStudioVersion)' == ''">10.0</VisualStudioVersion> <VSToolsPath Condition = "'$(VSToolsPath)' == ''"> $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) </VSToolsPath> <TargetFrameworkVersion>v4.5</TargetFrameworkVersion> <Import Project = "$(MSBuildBinPath)\Microsoft.CSharp.targets" /> <Import Project = "$(VSToolsPath)\WebApplications\ Microsoft.WebApplication.targets" Condition = "'$(VSToolsPath)' ! = ''" /> <Import Project = "$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\ WebApplications\Microsoft.WebApplication.targets" Condition = "false" />
正确构建解决方案需要哪些文件 - ItemGroup标记将包含成功构建项目所需的所有必要的 .Net 文件。这些文件需要相应地驻留在构建服务器上。
<ItemGroup> <Reference Include = "Microsoft.CSharp" /> <Reference Include = "System.Web.DynamicData" /> <Reference Include = "System.Web.Entity" /> <Reference Include = "System.Web.ApplicationServices" /> <Reference Include = "System.ComponentModel.DataAnnotations" /> <Reference Include = "System" /> <Reference Include = "System.Data" /> <Reference Include = "System.Core" /> <Reference Include = "System.Data.DataSetExtensions" /> <Reference Include = "System.Web.Extensions" /> <Reference Include = "System.Xml.Linq" /> <Reference Include = "System.Drawing" /> <Reference Include = "System.Web" /> <Reference Include = "System.Xml" /> <Reference Include = "System.Configuration" /> <Reference Include = "System.Web.Services" /> <Reference Include = "System.EnterpriseServices"/> </ItemGroup>
要使用的 Web 服务器设置是什么?当我们访问持续部署主题时,您将看到如何使用 MSBuild 覆盖这些设置并将其部署到我们选择的服务器。
<UseIIS>True</UseIIS> <AutoAssignPort>True</AutoAssignPort> <DevelopmentServerPort>59495</DevelopmentServerPort> <DevelopmentServerVPath>/</DevelopmentServerVPath> <IISUrl></IISUrl> <NTLMAuthentication>False</NTLMAuthentication> <UseCustomServer>False</UseCustomServer>