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

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

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

有帮助吗?

解决方案

这听起来像是一个非常简单的脚本编写。甚至一个批处理文件会做:

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 ,给出了网页界面到构建状态和历史记录。

在MS生成,存在用于呼叫者两个主要控制点:目标和其属性。我们的目标是什么编制,资源,编译,部署等属性控制这一目标是如何构建的。

可以控制使用的配置属性(见上文)的配置。如果你打开你的*。* PROJ文件,你会发现PropertyGroup元素。这些是通过使用/p ARG命令行设定。

下面是对两个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\

其他提示

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top