当构建脚本执行签入时,CC.NET是否检测到修改

时间:2009-06-24 17:53:50

标签: cruisecontrol.net

我一直在研究最终自动化我们的开发版本,还有一个令人烦恼的问题,我希望StackOverflow社区可以为我解决。

我的理解是IntervalTrigger正确设置时会每隔X秒检查VSS是否有变化,如果找到修改后的文件,则会运行我的任务。我的任务之一是检查AssemblyInfo文件并更新版本号。更新这些文件后,它们将被检入VSS。

考虑这个解决方案它没有多大意义,因为在我看来,每次触发器触发时我都会强制检查已更改的文件是否为true。我在这里错过了什么吗?有没有办法在不触发AssemblyInfo签入自动构建的情况下执行此操作?

4 个答案:

答案 0 :(得分:6)

您可以使用Filtered Source Control Block从触发器中排除某些文件。

答案 1 :(得分:2)

我刚刚在这里发布了一些关于我的默认构建过程的内容,您可能对此感兴趣:SVN Website Development and Deployment Solution

答案 2 :(得分:1)

我通常使用CC.NET配置项目的方法是每个解决方案有两个项目块。一个配置为间隔触发器,只能从我的存储库中获取最新信息,构建解决方案并运行单元测试。另一个是计划触发器,它执行另一个所做的所有事情,但实际上发布了一个构建。这包括更改版本号,发布文件等。这可能适用于您的情况,因为版本的更改会导致间隔项目触发,但只会触发一次。

答案 3 :(得分:1)

将自动生成的AssemblyInfo检查到版本控制系统是个坏主意,不要这样做。在你的历史中你会得到很多噪音(占所有提交的50%!)。此外,它不会为您提供任何新信息 - 您始终可以从VCS中获取此信息。让您的构建脚本自动生成这些文件是一种很好的做法,但不要推回这些更改!