如何让 FxCop 自定义词典正常工作?
我尝试将要识别的单词添加到文件“CustomDictionary.xml”中,该文件与 FxCop 项目文件保存在同一文件夹中。这似乎不起作用,因为即使在重新加载并重新运行 FxCop 之后,我仍然会收到“标识符应拼写正确”的 FxCop 消息。使用版本 1.36。
如何让 FxCop 自定义词典正常工作?
我尝试将要识别的单词添加到文件“CustomDictionary.xml”中,该文件与 FxCop 项目文件保存在同一文件夹中。这似乎不起作用,因为即使在重新加载并重新运行 FxCop 之后,我仍然会收到“标识符应拼写正确”的 FxCop 消息。使用版本 1.36。
如果你在 Visual Studio 中使用它...
将自定义字典添加到 C# 和 Visual Basic 项目很简单:
- 在解决方案资源管理器中,右键单击项目并选择添加 -> 新项目...
- 在 Templates 下,选择 XML File,输入字典的名称,例如 CodeAnalysisDictionary.xml,然后单击 Add
- 在解决方案资源管理器中,右键单击 XML 文件并选择属性
- 在 Properties 工具窗口中,在 Build Action 下选择 CodeAnalysisDictionary
- 在解决方案资源管理器中,双击新创建的字典将其打开
在 XML 编辑器中,粘贴以下内容,将“productname”和“companyname”替换为您团队的等效项:
<Dictionary> <Words> <Recognized> <Word>"productname"</Word> <Word>"companyname"</Word> </Recognized> </Words> </Dictionary>
您现在可以开始输入您自己的自定义词了。只需为项目中字典中不存在的每个单词添加一个新元素。每个单词都不区分大小写,因此单词的任何大小写都会被识别。代码分析将在下次运行时自动选择自定义字典。
最简单的方法是将其命名为“CustomDictionary.xml”并将其放入您的解决方案文件夹中,如果您有,FxCop(此处测试为 1.36)将自动获取它
<CustomDictionaries SearchFxCopDir="True"
SearchUserProfile="True"
SearchProjectDir="True" />
在您的 FxCop 项目文件中。
或者,您可以通过/dictionary
命令行参数指定它。
据我所知,FxCop 1.35 及更高版本使用两个字典来源。
我在构建过程中运行 FxCopCmd.exe,在这里我传递了字典命令行参数
FxCopCmd.exe ... /dictionary:FxCopDictionary.xml
这项工作与视觉工作室 2010 RC 版本的 FxCop 一起工作。不知道它是否适用于以前的版本。
除了上面大卫施密特的回答,您可能需要从 FxCop 安装文件夹中更改/删除 FxCop 附带的自定义字典。
我刚刚安装了 FxCop v1.36,直到我删除了C:\Program Files\Microsoft FxCop 1.36\CustomDictionary.xml
.
有一次,我将它移到一侧,FxCop 开始使用CustomDictionary.xml
解决方案文件夹中的 。
这确实引出了一个问题,即如何将常用词添加到共享自定义词典和其他自定义词典中的项目/解决方案特定词,并实际让 FxCop 使用这两者。但现在它正在工作......
我为上述大多数答案而苦苦挣扎,并一直在寻找解决方案。我终于对我的 .fxcop 文件进行了更改并将其签入源代码管理,它可以从命令行和 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
. 然后觉得用记事本创建文件并忘记它总是添加一个txt扩展名感到很傻。原来对我来说就是这样。
我不必将Build Action设置为CodeAnalysisDictionary。事实上,我什至没有这个选项(使用 Visual Studio 2010 Professional)。我正在使用FxCop Integrator扩展。它允许您右键单击解决方案并选择代码分析。另一个选项是更多任务。在More Tasks菜单中可以编辑Edit FxCop Dictionary。当我执行编辑时,它创建了一个名为Code Analysis的新解决方案文件夹,其中包含一个名为FxCopDictionary.xml的新 XML 文件。这个 XML 文件的设置正如人们所期望的那样CustomDictionary.xml文件看起来像。
希望这可以帮助那里的人!