我们维护一个在vb / c#.net中开发的中型Windows应用程序。现在,这个应用程序的构建和部署过程仍然是手动的。我决心使用MSBuild自动完成这个过程,我现在还不知道。
我们的应用程序有一个简单的构建结构,一组项目已经分为四个解决方案(.sln),只需要按顺序构建四个slns。然后将一个项目(它是最后一个要构建的sln的一部分)发布到一个目录。这就对了。一个简单的过程已经消耗了30分钟的手动构建时间,我非常确定这可以在至少1/4的时间内使用msbuild在没有人工干扰的情况下完成。
我的所有目标设定良好,我开始在网上寻找MSBuild资源来完成我的过程,但可能会看到很多困扰我的事情。需要一个指针或一个很好的解释,说明如何从我的简单场景开始和从哪里开始。非常感谢帮助。
答案 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上有很多很棒的信息。绝对是一个好的开始。