我们如何在Visual Studio 11 Beta中纠正或抑制来自Code Analysis的CA0503和CA0505消息

时间:2012-05-01 20:15:19

标签: code-analysis visual-studio-2012 static-code-analysis

当我在一个相当简单的项目上运行代码分析时,我立即得到“CA0503问题运行代码分析”和“CA0505问题运行代码分析”违规。 The CA0503 documentation page说:“该物业已弃用。请使用替代物品。”但是,它没有指向取代属性,如何处理错误,或如何抑制它。显然,这是一个隐藏的Microsoft规则集,您不能只关闭规则。

The CA0505 documentation page同样声明,“弃用的属性将被忽略,因为定义了超级属性。”接着说,“当指定的弃用和替代代码分析属性都包含项目或构建配置文件中的值时,会生成警告CA505。要解决此问题,请删除已弃用的属性。”

整个解决方案中的文本搜索CA0503或CA0505都不返回任何内容。但是,搜索“CodeAnalysisRules”会在我的两个项目文件中找到一行:

  

< CodeAnalysisRules> -Microsoft.Design#CA2210< / CodeAnalysisRules>

类似的文本搜索找不到“CodeAnalysisRuleSet”的相应行。

是否还有其他人遇到此问题,或许还找到了纠正或压制这些消息的方法?

3 个答案:

答案 0 :(得分:2)

将Visual Studio 2008项目升级到Visual Studio 2013时遇到此问题。在升级过程中,由于我将要调用的内容而出现错误,导致无法添加.ruleset文件。特殊的TFS源控制原因'。

预升级,我的项目文件(在我的例子中是.csproj文件)包含<CodeAnalysisRules>元素。这包含一个与项目代码分析规则相关的巨大字符串。升级后,我的项目文件的CodeAnalysisRules元素未更改,但在项目目录中创建了Migrated rules for [project name].ruleset文件。

为了解决这个问题,我:

  1. .ruleset文件添加到项目中(可能已经为您添加了文件,我的文件刚刚被转储到项目目录中)。
  2. 卸载项目。
  3. 通过完全删除.csproj元素并在其位置添加<CodeAnalysisRules><CodeAnalysisRuleSet>Migrated rules for [project name].ruleset</CodeAnalysisRuleSet>文件的任何名称来更新.ruleset文件。
  4. 重新加载项目。
  5. 我假设在成功升级期间,Visual Studio会解析旧<CodeAnalysisRules>元素的内容,根据它创建一个.ruleset文件,并将其链接到项目。我猜它并不总是有效。

答案 1 :(得分:1)

如果您从以前的Visual Studio更新了解决方案,并且您已定义了集中规则文件。您需要从项目中manually remove

答案 2 :(得分:0)

在运行代码分析时,您的项目文件会自动更新。将添加一个条目 - CodeAnalysisRules。这就是这个警告的原因。我认为,您需要以这样的方式配置CodeAnalysisRules元素不会出现在项目文件中。