在Visual Studio中启用代码分析的重要性是什么?

Ire*_*esh -2 c# code-analysis

我在VS 2010中创建了一个项目.我想将其转换为VS 2013.当我构建它时,会出现错误:

CA0053运行代码分析时出错CA0053:无法加载规则程序集'c:\ program files\microsoft visual studio 10.0\team tools\static analysis tools\fxcop\rules\globalizationrurux.dll':无法加载一个或多个请求的类型.检索LoaderExceptions属性以获取更多信息.

我禁用了"在Build中启用代码分析"并运行,然后它不会给我一个错误.

  1. 启用代码分析的重要性是什么?
  2. 如果禁用代码分析会发生什么?

Cod*_*ter 5

启用代码分析的重要性是什么?

这样您的代码就可以得到分析.

如果禁用代码分析会发生什么?

您的代码将不会被分析.

代码分析为您提供有关代码的提示.它是您编写的代码的样式和安全检查.有关详细信息,请参阅MSDN:托管代码概述MSDN的代码分析:使用代码分析分析托管代码质量.


Ter*_*røm 5

从VS 2010转换到VS 2012/13时,您获得的CA0053错误是一个已知问题.我已经列出了如何解决这个问题:http: //geekswithblogs.net/terje/archive/2012/08/18/how-to-fix-the-ca0053-error-in-code-analysis-in. ASPX

根本原因是您的项目绑定到特定版本,并且应该是版本无关的,这是由使用VS 2010二进制文件的绝对路径引起的.您可以在项目文件中更改它,如帖子中所述.

如果您想手动完成,基本步骤是:

  1. 在文本编辑器中打开项目文件(.csproj)
  2. 找到的行 <CodeAnalysisRuleDirectories> and <CodeAnalysisRuleSetDirectories>
  3. 用线替换它们

这里显示

<CodeAnalysisRuleDirectories>$(DevEnvDir)\..\..\Team Tools\Static Analysis Tools\FxCop\Rules</CodeAnalysisRuleDirectories>
Run Code Online (Sandbox Code Playgroud)

<CodeAnalysisRuleSetDirectories>$(DevEnvDir)\..\..\Team Tools\Static Analysis Tools\Rule Sets</CodeAnalysisRuleSetDirectories>
Run Code Online (Sandbox Code Playgroud)

正如博客文章中所述,在许多情况下,您似乎也可以删除这些行.您可以先尝试,如果不起作用,请执行上面的步骤3.