Mat*_*son 20 c# code-analysis fxcop base-class-library
我正在尝试使用Microsoft.Bcl.Async
和代码分析,但是当我运行代码分析时,我得到一个或多个错误.
我正在使用Visual Studio 2012和Update 2.
这对我来说很容易重现:
.Net 4
.References
然后选择Manage NuGet Packages...
Online
并async
在Search Online
框中键入.Async for .Net Framework 4 ...
.点击Install
并接受所有问题.Main()
一行说:TaskEx.Delay(1000);
和ausing System.Threading.Tasks;
Enable Code Analysis on Build
.我收到两个代码分析错误:
CA0052运行代码分析时出错CA0052:未选择任何目标.[错误和警告](全球)
CA0055运行代码分析CA0055时出错:无法加载ConsoleApplication2.exe.读取模块"ConsoleApplication2"时遇到以下错误:无法解析成员引用:[Microsoft.Threading.Tasks,Version = 1.0.12.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a] System.Threading.Tasks.TaskEx :: Delay.[错误和警告](全球)
我为其他测试程序得到了不同的代码分析错误.我试过的基本Windows窗体应用程序给了我:
CA0001错误运行代码分析CA0001:读取模块"AsyncForNet4"时遇到以下错误:无法解析成员引用:[Microsoft.Threading.Tasks,Version = 1.0.12.0,Culture = neutral,PublicKeyToken = b03f5f7f11d50a3a] System.Threading. Tasks.TaskEx ::延迟.[错误和警告](全球)
两个问题:
Dav*_*ean 48
正如Nicole所提到的,这是因为Code Analysis/FxCop强制执行包括版本在内的强名称.这种行为对.NET Framework有意义,直到您开始考虑绑定重定向(或其他平台,如Store,Phone和Silverlight,它们总是允许更高版本的程序集与早期版本匹配),这是FxCop不尊重的.
我在FxCop中编写了这个原始行为,并且它正在优化正确性与现实世界.当时,除了通过App.Config之外,我们没有选择退出.然而,幸运的是,在我离开团队之后,团队中的一些聪明人通过命令行和Visual Studio中添加了一个.
通过命令行:
FxCopCmd.exe /assemblycomparemode:StrongNameIgnoringVersion ...
Run Code Online (Sandbox Code Playgroud)
通过Visual Studio:
<PropertyGroup>
元素中,添加以下内容: <CodeAnalysisAdditionalOptions> /assemblycomparemode:StrongNameIgnoringVersion</CodeAnalysisAdditionalOptions>
这仅适用于Visual Studio 2012及更高版本.
归档时间: |
|
查看次数: |
5477 次 |
最近记录: |