当有人构建我的解决方案时,我想要运行多个任务,具体取决于解决方案配置:
>在Release配置中,为整个解决方案运行Doxygen(doxygen.exe ….)
>在Debug和Release配置中,为整个解决方案运行StyleCop(调用StyleCop目标)
>在Debug配置中,为整个解决方案运行FxCop(fxcop.exe …)
>等等
这些都是解决方案级别(全局)任务,因此将它放在每个项目文件中都没有意义.这似乎是一个常见的问题,所以你如何处理它?
我想我可以创建一个空项目,确保每个其他项目都依赖于它并将所有解决方案级别的任务放在那个……?
解决方法
这个问题假设你希望每次都能建立一切,实际上我并没有发现这种情况.目前我正在工作的团队对建立时间非常敏感.
因此,我建议你认为构建不是一件事,而是有几种口味.有“它构建了吗?”构建,我将构建选择(仅当前项目)映射到一个键,直到我开始使用reshaper.对于没有进行单元测试的人(包括那些开发不可测试的ui变化的人),有一个“让我们测试它构建”,如果当然有“Everything and the kitchen sink build”,其中文档,stylecop和任何其他指标可以是获得.
出于这个原因,我建议使用构建服务器.将您的其他目标放在一边,并在完成所有其他工作后使用它们.我建议TeamCity的预测试提交功能是一种很好的方法,可以让您的团队测试他们不会破坏并构建覆盖范围减少等故障情况.
此外,如果您在开发时搜索更快速的构建,那么我建议使用NCrunch,它具有高度优化的构建过程,在您编辑文件或ContinuousTests的大约一秒钟内运行.