7 c# msbuild visual-studio-2010
当有人构建我的解决方案时,我想要运行多个任务,具体取决于解决方案配置:
这些都是解决方案级别(全局)任务,因此将它放在每个项目文件中都没有意义.这似乎是一个常见的问题,所以你如何处理它?
我想我可以创建一个空项目,确保每个其他项目都依赖于它并将所有解决方案级别的任务放在那个......?
我更喜欢将此类任务放在 .targets 文件中,并从我的主要项目(大致是不生成库的项目)中引用它们。我还可以在该 .targets 文件中创建Targets,该文件将组合常见任务的子集。这样,我的一些项目可以方便地运行sharedtask1and sharedtask2,而其他项目则运行sharedtask1and sharedtask3,因为我只是添加DependsOnTargets="Shared12"and DependsOnTargets="Shared13"(显然,我会尝试选择描述性名称)。
这些文章提供了一些关于组织 msbuild 任务的好建议:
编辑
要仅运行某些任务一次,请使用上面第二篇文章中所述的增量构建:
构建解决方案时,第一个项目将启动上述任务,该任务将输出一个标记文件,并且只要您的输入文件在构建的其余部分中没有更改,该任务就不会再次运行。现在,这样做的缺点是
要解决最后一个问题,您必须放弃从 VS 进行构建,而是调用自定义任务,该任务将构建解决方案,然后使用命令行中的 msbuild.exe 按顺序执行一个或多个自定义任务。我意识到这可能不是您正在寻找的开发人员体验。
| 归档时间: |
|
| 查看次数: |
557 次 |
| 最近记录: |