有什么方法可以防止我在错误的Visual Studio配置中意外构建?

时间:2009-02-20 21:58:34

标签: visual-studio msbuild build-process

在Visual Studio中,我为各种层提供了自定义MSBuild操作 - 开发,登台,测试等。这些脚本将自动编译所有内容,执行web.config交换,并根据所选配置将代码推送到某个位置。通常,当我想在开发之外的其他东西上运行其中一个构建时,我从命令行调用构建脚本。

虽然我尽量保持勤奋,但有时候我(以及其他在解决方案中工作的人)会意外地将配置留在他们不想要的地方 - 也许他们将其切换到“临时”配置来查看如何代码以其特定的预处理程序指令查找。然后他们点击“F5”,认为他们正在开发中进行调试......并意外地推出了破​​坏的代码。

所以问题是,是否还有一种方法可以将构建脚本与配置相关联,但是不允许从IDE构建某些配置?还是弹出警告?或者我是以错误的方式开始这个?

2 个答案:

答案 0 :(得分:3)

要让分段构建失败,除非它是团队构建,您应该能够使用

<Error
  Text="No Staging builds except on the Team Build server"
  Condition=" '$(IsDesktopBuild)'=='true' And $(Configuration)='Staging' " />

CruiseControl.NET还将不同的属性传递给msbuild,因此类似的想法可以替代IsDesktopBuild中的一个。

我不知道Visual Studio构建和命令行msbuild之间的默认属性有任何差异,但是如果你可以承受一些额外的输入,这应该可以完成这项工作

<Error
  Text="You didn't say the magic word"
  Condition=" '$(MagicWord)'!='please' And $(Configuration)='Staging' " />

然后

msbuild /p:Configuration=Staging /p:MagicWord=please

Visual Studio将不包含额外属性,因此构建将失败。

答案 1 :(得分:0)

Task Class用于在MSBuild编译过程中添加更多控件。