【问题标题】:How can we correct or suppress CA0503 and CA0505 messages from Code Analysis in Visual Studio 11 Beta我们如何在 Visual Studio 11 Beta 中更正或抑制来自代码分析的 CA0503 和 CA0505 消息
【发布时间】:2012-05-01 20:15:19
【问题描述】:

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

The CA0505 documentation page 类似地指出,“已弃用的属性将被忽略,因为已定义取代的属性。”它继续说,“当指定的已弃用和取代的代码分析属性都包含项目或构建配置文件中的值时,会生成警告 CA505。要解决此问题,请删除已弃用的属性。”

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

-Microsoft.Design#CA2210

通过类似的文本搜索未找到“CodeAnalysisRuleSet”的对应行。

有没有其他人遇到过这种情况并且可能找到了纠正或禁止这些消息的方法?

【问题讨论】:

  • 它在抱怨什么属性?分析发出的确切诊断信息是什么?
  • 好吧,我提供了信息,但这里是代码分析输出:“CA0505 问题运行代码分析 CA0505:CodeAnalysisRules 属性将被忽略,因为 CodeAnalysisRuleSet 属性已定义。[错误和警告](全局)”和“CA0503 问题运行代码分析 CA0503:不推荐使用 CodeAnalysisRules 属性。请改用 CodeAnalysisRuleSet 属性。[错误和警告](全局)”。这就是微软提供给我的所有信息。
  • 请注意,这是 Visual Studio 11 Beta 的全新安装,我没有时间进行通常的调整;所以,它基本上是“开箱即用”的 VS11。
  • <CodeAnalysisRules> 已被<CodeAnalysisRuleSet> 取代。如果您将项目文件更改为使用<CodeAnalysisRuleSet>,警告应该会消失。

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


【解决方案1】:

我在将 Visual Studio 2008 项目升级到 Visual Studio 2013 时遇到了这个问题。在升级过程中,由于我称之为“特殊 TFS 源代码控制原因”而导致无法添加 .ruleset 文件的错误弹出'。

升级前,我的项目文件(在我的例子中是 .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. 重新加载项目。

我假设在成功升级期间 Visual Studio 会解析旧 <CodeAnalysisRules> 元素的内容,基于它创建一个 .ruleset 文件,并将其链接到项目。我猜它并不总是有效。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 2012-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-08-10
        • 2018-01-28
        相关资源
        最近更新 更多