在TFS上实施签入策略的自定义stylecop规则

时间:2010-02-24 15:51:46

标签: visual-studio-2008 tfs stylecop team-explorer

我已经安装了StyleCop CheckIn政策(来自here),效果很好。但是我编写了一些自定义规则,我希望将其作为CheckIn策略的一部分来实施(Visual Studio 2008,Team Explorer 2008,TFS 2005)。

当我右键单击项目并单击“StyleCop设置”时,自定义规则在设置文件中显示正常。但是,当我添加CheckIn策略并尝试导入相同的settings.StyleCop文件时,我的自定义规则不会出现在编辑器窗口中。

另一个可能相关的问题是,当我从Visual Studio打开编辑器时,我的自定义规则出现在StyleCop设置编辑器中。但是,如果我通过双击Windows资源管理器中的设置文件打开编辑器,我的规则就无处可见。

现在任何人都可以告诉我实际上是否可以将自定义规则作为checkIn策略的一部分,如果是,那么在添加checkIn策略时如何让它们出现在StyleCop设置编辑器窗口中。

谢谢,

尼尔

2 个答案:

答案 0 :(得分:3)

是的,这绝对是可能的!

让一切正常工作可能有点棘手,但了解一些关键的事情应该有很多帮助。

第一步是使用自定义规则让StyleCop在开发人员计算机上正常工作:
1)StyleCop必须安装在开发者机器上 2)自定义规则必须安装在与StyleCop相同的目录中(或者,可选地,安装到子目录中)。如果它们安装在任何其他地方,那么如果它们完全正常工作,它们就不太可能正常工作 3)该安装目录中的Settings.StyleCop文件,包含正在分析的项目的目录以及该目录之上的所有目录必须组合以启用自定义规则。通过双击项目目录中的Settings.StyleCop文件并确保在编辑器中启用规则,可以最好地验证这一项。

下一点甚至更棘手,因为StyleCop在构建机器上正常工作 这几乎是相同的三点,但在将为Check-in策略运行StyleCop的构建机器上。因此,构建计算机必须安装StyleCop,安装自定义规则,并使用所有正确的Settings.StyleCop文件在构建计算机上创建与开发人员计算机上相同的整体StyleCop规则设置。这是最简单的方法,只是没有意识到构建机器必须安装StyleCop。即使安装了StyleCop,StyleCop也可以通过VS集成(因为您不熟悉)或StyleCop via MSBuild integration运行(这种情况不常见,通常不太了解)。构建机器通常设置为使用MSBuild集成,这意味着自定义规则需要安装在%Program Files%\ MSBuild \ Microsoft \ StyleCop \ v4.3目录而不是%Program Files%\ StyleCop目录中可能会有所期待。此外,如果您已修改%Program Files%\ StyleCop目录中的基本Settings.StyleCop文件,则您必须将该文件复制到%Program Files%\ MSBuild \ Microsoft \ StyleCop \ v4.3目录中为了在构建机器上获得相同的效果。请注意,使用来自开发人员计算机的经过验证的工作Settings.StyleCop文件进行复制/粘贴是确保构建计算机具有正确设置的最佳方法。 StyleCop对这些XML文件非常挑剔,最轻微的错字可能导致奇怪的行为,需要花费数天时间进行调试。不要手动编辑。你被警告了。 8)

所以肯定有很多方法可以让它完全正确,你会看到像你所描述的那样奇怪,直到你得到它。幸运的是,通过记住我列出的三点以及“构建机器上的StyleCop”和“开发人员机器上的StyleCop”之间的区别,最终应该可以使它全部顺利运行。好吧,它至少对我有用。

祝你好运!

答案 1 :(得分:1)

我已经在CodePlex上编写了一个支持自定义规则(已验证)的签到政策,可以在以下网址找到:http://sourceanalysispolicy.codeplex.com

相关问题