我使用所有相同的規則ID構建了多個規則集文件,但包含的MS規則集的升序級別和一些規則的Action的嚴重性增加。我遇到的問題是VS2010告訴我,在FXCop_VS2010_HIGLevel1.ruleset加載正常時加載我的FXCop_VS2010_HIGLevel2.ruleset文件時出錯。他們本質上看起來是一樣的:我的FXCop規則集有什麼問題?
FXCop_VS2010_HIGLevel1.ruleset
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="HIG VS2010 Code Analysis Rules Level 1" Description="These rules expand on the basic design guideline rules to maximize the usability and maintainability issues that are reported. Extra emphasis is placed on naming guidelines. Consider including this rule set if your project includes library code or if you want to enforce the highest standards for writing maintainable code." ToolsVersion="10.0">
<Include Path="BasicCorrectnessRules.ruleset" Action="Default" />
<Include Path="SecurityRules.ruleset" Action="Default" />
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1000" Action="None" />
<Rule Id="CA1001" Action="None" />
...
<Rule Id="CA2239" Action="Warning" />
<Rule Id="CA2240" Action="None" />
<Rule Id="CA2242" Action="None" />
<Rule Id="CA2243" Action="None" />
</Rules>
</RuleSet>
FXCop_VS2010_HIGLevel2.ruleset
<?xml version="1.0" encoding="utf-8"?>
<RuleSet Name="HIG VS2010 Code Analysis Rules Level 2" Description="These rules expand on the basic design guideline rules to maximize the usability and maintainability issues that are reported. Extra emphasis is placed on naming guidelines. Consider including this rule set if your project includes library code or if you want to enforce the highest standards for writing maintainable code." ToolsVersion="10.0">
<Include Path="BasicCorrectnessRules.ruleset" Action="Default" />
<Include Path="BasicDesignGuidelineRules.ruleset" Action="Default" />
<Include Path="SecurityRules.ruleset" Action="Default" />
<Rules AnalyzerId="Microsoft.Analyzers.ManagedCodeAnalysis" RuleNamespace="Microsoft.Rules.Managed">
<Rule Id="CA1000" Action="Warning" />
<Rule Id="CA1001" Action="None" />
...
<Rule Id="CA2239" Action="Warning" />
<Rule Id="CA2240" Action="None" />
<Rule Id="CA2242" Action="None" />
<Rule Id="CA2243" Action="None" />
</Rules>
</RuleSet>
你可以看到,他們基本上是相同的。 Level 2添加了BasicDesignGuidelineRules.ruleset並更改了某些規則的操作(即CA1000從級別1的「無」變爲級別2的「警告」)。
這是我從VS2010得到當我把2級規則集文件爲靜態分析工具\規則錯誤集文件夾:
任何想法,爲什麼發生這種情況?我一行一行地經歷了Level 2的XML,並且運行了一個與Level 1相比較的文件。唯一的區別是我期望的。我使用Notepad ++在適當的位置顯示非打印字符和CRLF以外的內容。我很難過。
不幸的是,我無法重現與您的帖子中的信息相關的問題。您可以通過啓用和檢查Visual Studio活動日誌(http://msdn.microsoft.com/zh-cn/library/ms241272(v=vs.100).aspx)來發現更多詳細信息。否則,你能否發佈一個更完整的二級規則集版本來解決問題? –
無法附加文件(有嗎?),我沒有辦法將它從外部保存起來以提供鏈接。
有太多內容要將它作爲代碼發佈在評論中。有關如何發佈整個文件的任何建議?順便說一句 - 我能夠通過將所有的「Action =」CriticalError「」和「Action =」CriticalWarning「」分別更改爲「錯誤」和「警告」來擺脫錯誤。我不知道爲什麼這突然開始發生。 「CriticalError」和「CriticalWarning」是有效的操作。他們在我的原始規則集。我添加了額外的規則,並突然將它們作爲Action的無效值... –