需要Msbuild新手入门

时间:2009-05-31 06:36:35

标签: .net msbuild release-management build-management

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

我们的应用程序有一个简单的构建结构,一组项目已经分为四个解决方案(.sln),只需要按顺序构建四个slns。然后将一个项目(它是最后一个要构建的sln的一部分)发布到一个目录。这就对了。一个简单的过程已经消耗了30分钟的手动构建时间,我非常确定这可以在至少1/4的时间内使用msbuild在没有人工干扰的情况下完成。

我的所有目标设定良好,我开始在网上寻找MSBuild资源来完成我的过程,但可能会看到很多困扰我的事情。需要一个指针或一个很好的解释,说明如何从我的简单场景开始和从哪里开始。非常感谢帮助。

2 个答案:

答案 0 :(得分: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
call deploy

当然,更好的办法是让服务器运行,比如说CruiseControl.NET,它会为构建状态和历史记录提供一个Web界面。

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

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

进行设置

以下是两个参数的规格:

/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\

答案 1 :(得分:1)

Here's a good guide在MSBuild,Continuous Integration和CuriseControl.NET上有很多很棒的信息。绝对是一个好的开始。