Visual studio 2008 在TFS上强制执行签入策略的自定义stylecop规则

Visual studio 2008 在TFS上强制执行签入策略的自定义stylecop规则,visual-studio-2008,tfs,stylecop,team-explorer,Visual Studio 2008,Tfs,Stylecop,Team Explorer,我已经安装了StyleCop签入策略(从),它工作得很好。但是,我已经编写了一些自定义规则,希望将其作为签入策略的一部分强制执行(VisualStudio2008、Team Explorer 2008、TFS 2005) 当我右键单击项目并单击“StyleCop设置”时,自定义规则在设置文件中显示良好。但是,当我添加签入策略并尝试导入相同的settings.StyleCop文件时,我的自定义规则不会显示在编辑器窗口中 另一个可能与此相关的问题是,当我从VisualStudio打开编辑器时,我的自

我已经安装了StyleCop签入策略(从),它工作得很好。但是,我已经编写了一些自定义规则,希望将其作为签入策略的一部分强制执行(VisualStudio2008、Team Explorer 2008、TFS 2005)

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

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

现在有谁能告诉我,在签入策略中是否可以使用自定义规则,如果可以,那么在添加签入策略时,如何让它们出现在StyleCop设置编辑器窗口中

谢谢


尼尔:是的,这绝对是可能的

要让它正常工作可能有点棘手,但了解一些关键的事情应该会有很大帮助

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

下一点更为棘手,让StyleCop在构建机器上正常工作。
这三点基本相同,但是在构建机器上,它将为签入策略运行StyleCop。因此,生成计算机必须安装StyleCop、自定义规则和所有正确的Settings.StyleCop文件,才能在生成计算机上创建与开发人员计算机上相同的整体StyleCop规则设置。这是最容易打破的,因为不知道构建机器上必须安装StyleCop。即使安装了StyleCop,StyleCop也可以通过VS集成(毫无疑问,您并不熟悉)或(不太常见,通常也不太容易理解)运行。生成计算机通常设置为使用MSBuild集成,这意味着需要将自定义规则安装在%Program Files%\MSBuild\Microsoft\StyleCop\v4.3目录中,而不是您可能期望的%Program Files%\StyleCop目录中。此外,如果修改了%Program Files%\StyleCop目录中的基本设置.StyleCop文件,则必须将该文件复制到%Program Files%\MSBuild\Microsoft\StyleCop\v4.3目录中,以便在生成计算机上获得相同的效果。请注意,使用开发人员计算机上的已验证工作设置.StyleCop文件进行复制/粘贴是确保生成计算机具有正确设置的最佳方法。StyleCop对这些XML文件非常挑剔,最轻微的输入错误都会导致奇怪的行为,需要几天的调试时间。不要手工编辑。你已经被警告了。(八)

所以肯定有很多方法不能完全正确,你会看到奇怪,就像你描述的那样,直到你做到。幸运的是,通过记住我列出的三点以及“构建机器上的StyleCop”和“开发机器上的StyleCop”之间的区别,最终应该可以让所有的工作都顺利进行。好吧,至少对我来说一直是这样


祝你好运

我在CodePlex上编写了一个签入策略,该策略支持自定义规则(已验证),可在以下位置找到: