0

我管理着一个相当大的团队(5 个解决方案,约 150 个项目),使用 TFS2010 和门控签到。在我们的团队中,我们要求每个项目都导入我们自己的名为 Common.Targets 的文件,该文件执行大量构建时的工作。我已经指示团队中的每个人都这样做,并在上面写了一个 wiki 条目。

但是,人们在添加新项目的时候还是会忘记导入 common.Targets,导致签入后的各种麻烦。

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

4

2 回答 2

3

一个经典的方法是登记政策。由于没有针对您的要求的预定义策略,您可以相当轻松地编写自己的自定义策略 - 请参阅如何:创建自定义签入策略

于 2012-04-23T17:28:12.840 回答
0

2个选项:

  1. 根据 KMoraz 的建议,编写自定义签入策略(操作方法),将更改/添加的 .csproj 解析为 XML 并验证它们是否导入 Common.Targets。

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

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

    缺点:开发人员只有在他的门控签入失败时才会看到错误。

我决定和2一起去。

于 2012-04-25T07:44:32.713 回答