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

时间:2008-12-11 13:13:14

标签: dictionary localization code-analysis fxcop

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

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

8 个答案:

答案 0 :(得分:29)

如果您在Visual Studio中使用它......

来自Visual Studio Code Analysis Team Blog

  

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

     
      
  1. 在解决方案资源管理器中,右键单击项目,然后选择添加 - >新   项...
  2.   
  3. 在“模板”下,选择“XML文件”,输入字典的名称,例如   作为CodeAnalysisDictionary.xml和   单击添加
  4.   
  5. 在解决方案资源管理器中,右键单击XML文件,然后选择“属性”
  6.   
  7. 在“属性”工具窗口中的“构建操作”下,选择   CodeAnalysisDictionary
  8.   
  9. 在解决方案资源管理器中,双击新创建的字典   打开它
  10.   
  11. 在XML编辑器中,粘贴以下内容,替换“productname”和   和你的团队一起“公司名称”   当量:

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

    您现在可以开始输入了   你自己的自定义单词。只需添加一个   每个单词的新元素   你的项目不存在   词典。每个字都是   不区分大小写,所以任何外壳   这个词会得到承认。代码分析   将自动获取自定义   下次运行字典。

答案 1 :(得分:17)

最简单的方法是将其称为“CustomDictionary.xml”并将其放入您的解决方案文件夹中,如果您有

,FxCop(此处测试的1.36)将自动获取它
<CustomDictionaries SearchFxCopDir="True"
                    SearchUserProfile="True"
                    SearchProjectDir="True" />

在您的FxCop项目文件中。

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

答案 2 :(得分:4)

据我所知,FxCop 1.35及以后使用两个字典来源。

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

答案 3 :(得分:4)

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

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

这项工作与Visual Studio 2010 RC版本的FxCop一起使用。不知道它是否适用于以前的版本。

答案 4 :(得分:3)

根据David Schmitt的回答above,您可能需要在FxCop安装文件夹中更改/删除FxCop附带的自定义词典。

我刚刚安装了FxCop v1.36,在C:\Program Files\Microsoft FxCop 1.36\CustomDictionary.xml删除自定义词典之前,我无法识别字典中的项目特定字词。

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

这确实提出了如何将常用单词添加到共享自定义词典和其他自定义词典中的项目/解决方案特定单词并且实际上让FxCop同时使用两者的问题。但是现在它正在发挥作用......

答案 5 :(得分:2)

我努力解决上述大部分问题并不断寻找解决方案。我终于对我的.fxcop文件进行了这个更改,并将其检入源代码控制,它可以从命令行和gui fxcop

进行操作

我改变了这一行

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

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

答案 6 :(得分:1)

另外,请确保该文件确实是*.xml而不是*.xml.txt。然后对使用记事本创建文件感到愚蠢,并忘记它总是添加一个txt扩展名。这就是我的结果。

答案 7 :(得分:0)

我没有必须将 Build Action 设置为 CodeAnalysisDictionary 。事实上,我甚至没有选择(使用Visual Studio 2010 Professional)。我正在使用FxCop Integrator扩展程序。它允许您右键单击解决方案并选择代码分析。另一个选项是更多任务。在更多任务菜单中,可以编辑编辑FxCop词典。当我执行编辑时,它创建了一个名为代码分析的新解决方案文件夹,其中包含一个名为 FxCopDictionary.xml 的新XML文件。此XML文件设置为人们期望 CustomDictionary.xml 文件看起来像。

希望这有助于那里的人!