如何让FxCop自定义词典工作?

如何才能使FxCop自定义字典正常工作?

我已经尝试添加要识别的文字“CustomDictionary.xml”,该文件保存在与FxCop项目文件相同的文件夹中。 这似乎不起作用,因为即使在重新加载并重新运行FxCop之后,我仍然得到“标识符应该拼写正确”的FxCop消息。 使用版本1.36。

如果您在Visual Studio中使用它…

从Visual Studio代码分析团队博客

将自定义字典添加到C#和Visual Basic项目很简单:

  1. 在解决scheme资源pipe理器中,右键单击该项目并select添加 – >新build项目…
  2. 在“模板”下,select“XML文件”,input字典的名称,例如CodeAnalysisDictionary.xml,然后单击“添加”
  3. 在解决scheme资源pipe理器中,右键单击XML文件并select“属性”
  4. 在“属性”工具窗口的“构build操作”下,select“CodeAnalysisDictionary”
  5. 在解决scheme资源pipe理器中,双击新创build的字典将其打开
  6. 在XML编辑器中,粘贴以下内容,将“productname”和“companyname”replace为您的团队的等价物:

    <Dictionary> <Words> <Recognized> <Word>"productname"</Word> <Word>"companyname"</Word> </Recognized> </Words> </Dictionary> 

你现在已经准备好开始input你自己的自定义单词了。 只需为项目中不存在的每个单词添加一个新元素。 每个单词都是不区分大小写的,所以任何单词的shell都会被识别。 代码分析将在下次运行时自动提取自定义字典。

最简单的方法就是将其称为“CustomDictionary.xml”,并将其放在您的解决scheme文件夹中,如果您有FxCop(1.36testing在这里)将自动提取

 <CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" /> 

在你的FxCop项目文件中。

或者,您可以通过/dictionary命令行参数指定它。

据我所知,FxCop 1.35及以上版本使用了两个字典来源。

  • Microsoft Office字典(通过MS Word等添加单词应该工作)
  • 存储在FxCop程序文件夹中的“CustomDictionary.xml”文件,而不是项目文件文件夹。

我运行FxCopCmd.exe作为我的生成过程的一部分,在这里我传递字典命令行参数

 FxCopCmd.exe ... /dictionary:FxCopDictionary.xml 

这与Visual Studio 2010 RC版本的FxCop一起工作。 不知道它是否会与以前的版本。

除上述 David Schmitt的回答之外 ,您可能需要从FxCop安装文件夹中更改/删除FxCop附带的自定义字典。

我刚刚安装了FxCop v1.36,并且无法获取我的字典中的项目特定字词,直到我在C:\Program Files\Microsoft FxCop 1.36\CustomDictionary.xml删除了自定义字典。

有一次,我把它移到了一边,FxCop开始使用解决scheme文件夹中的CustomDictionary.xml

这样做乞求如何将常见单词添加到共享的自定义词典和其他自定义词典中的项目/解决scheme特定的单词,实际上有两个FxCop使用的问题。 但现在它正在工作….

我与上面的大部分答案奋斗,并不断寻找解决scheme。 我终于做了这个改变到我的.fxcop文件,并将其检查到源代码pipe理,它可以从命令行和gui fxcop

我改变了这一行

 <CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" /> 

 <CustomDictionaries SearchFxCopDir="True" SearchUserProfile="True" SearchProjectDir="True" > <CustomDictionary Path="$(ProjectDir)/CustomDictionary.xml"/> </CustomDictionaries> 

还要确保文件确实是*.xml而不是*.xml.txt 。 然后觉得用记事本创build一个文件很愚蠢,忘记它总是添加一个txt扩展名。 这就是结果给我的。

我不必将生成操作设置为CodeAnalysisDictionary 。 事实上,我甚至没有这个选项(使用Visual Studio 2010 Professional)。 我正在使用FxCop Integrator扩展。 它允许您右键单击解决scheme并select代码分析 。 另一个选项是更多任务 。 在“ 更多任务”菜单中,可以编辑“ 编辑FxCop词典” 。 当我执行编辑时,它创build了一个名为Code Analysis的新解决scheme文件夹,其中包含一个名为FxCopDictionary.xml的新XML文件。 这个XML文件被设置为可以预期CustomDictionary.xml文件的样子。

希望这可以帮助那里的人!