验证每个项目是否导入Common.Targets

时间:2012-04-23 13:40:01

标签: tfs msbuild tfs2010

我使用TFS2010和门控签到运行一个相当大的团队(5个解决方案,~150个项目)。在我们的团队中,我们要求每个项目导入一个我们自己的文件Common.Targets,它会执行一堆构建时间的东西。我已经指示团队中的每个人都这样做,并在其上写了一个wiki条目。

然而,人们仍然忘记在添加新项目时导入common.Targets,在办理登机手续后会造成各种麻烦。

有没有办法 - 一个msbuild命令行,我可以放入我的.sln等等 - 这样的项目无法编译,因此不会通过门控签到?

2 个答案:

答案 0 :(得分:3)

经典方法是签到政策。由于您的要求没有预先定义的政策,因此您可以相当轻松地编写自己的自定义政策 - 请参阅How To: Create Custom Check-in Policies

答案 1 :(得分:0)

2个选项:

  1. 根据KMoraz的建议,作者提供了一个自定义签到策略(How To),它将已更改/添加的.csproj解析为XML并验证它们是否导入了Common.Targets。

    Con:需要手动将其分发给团队中的所有开发人员,并管理更新(如果有)。

  2. 创作自定义CodeActivity (How To)。它运行msbuild MSBuildEmitSolution = 1,将生成的.sln.metaproj解析为XML以获取csproj文件列表,然后按上述方式验证它们。

    Con:开发人员只有在门禁登记失败时才会看到错误。

  3. 我决定选择2。