5

我们在工作中维护一个用 vb/c# .net 开发的中型 windows 应用程序。现在这个应用程序的构建和部署过程仍然是手动的。我决心使用我现在还不知道的 MSBuild 使这个过程自动化。

我们的应用程序有一个简单的构建结构,一组项目已经分为四个解决方案(.sln),只需要按顺序构建四个 sln。然后将一个项目(这是要构建的最后一个 sln 的一部分)发布到一个目录。这就对了。一个简单的过程已经花费了 30 分钟的手动构建时间,我很确定这可以在至少 1/4 的时间内使用 msbuild 完成而无需手动干预。

我所有的目标都设置得很好,我开始在网上寻找 MSBuild 资源来完成我的流程,但可能会环顾许多事情让我感到困惑。对于我的简单场景,需要一个关于如何开始以及从哪里开始的指针或一个很好的解释。非常感谢您的帮助。

4

2 回答 2

5

这听起来像是一个非常容易编写的脚本。即使是批处理文件也可以:

msbuild \path\to\first.sln /p:Configuration=Release
msbuild \path\to\second.sln /p:Configuration=Release
msbuild \path\to\third.sln /p:Configuration=Release
msbuild \path\to\fourth.sln /p:Configuration=Release
调用部署

当然,最好有一个运行的服务器,比如CruiseControl.NET,它提供了一个进入构建状态和历史记录的 Web 界面。

在 MS Build 中,调用者有两个主要控制点:目标及其属性。Target 是要编译的内容、资源、编译、部署等。 Properties 控制如何构建 Target。

您可以使用Configuration属性控制配置(见上文)。如果您打开 *.*proj 文件,您会注意到PropertyGroup元素。这些可以通过命令行使用/parg 进行设置。

以下是两个 args 的规格:

/target:<targets>  Build these targets in this project. Use a semicolon or a
                 comma to separate multiple targets, or specify each
                 target separately. (Short form: /t)
                 Example:
                   /target:Resources;Compile

/property:<n>=<v>  Set or override these project-level properties. <n> is
                 the property name, and <v> is the property value. Use a
                 semicolon or a comma to separate multiple properties, or
                 specify each property separately. (Short form: /p)
                 Example:
                   /property:WarningLevel=2;OutDir=bin\Debug\
于 2009-05-31T06:59:50.367 回答
1

这是一个很好的指南,其中包含有关 MSBuild、持续集成和 CuriseControl.NET 的大量重要信息。绝对是一个很好的起点。

于 2009-05-31T07:10:01.470 回答