繁体   English   中英

Visual Studio 2012代码分析错误CA0058

[英]Visual Studio 2012 Code Analysis Error CA0058

我目前正在开发一个包含多个项目的解决方案,当我尝试从VS12运行代码分析工具时,我在尝试运行它时遇到以下错误:

CA0058运行代码分析错误CA0058:找不到引用的程序集“Microsoft.Practices.Unity,Version = 2.1.505.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35”。 此程序集是分析所必需的,并通过以下方式引用:C:\\ MyProject \\ bin \\ Release \\ MyProject.exe,C:\\ MyProject \\ packages \\ Prism.UnityExtensions.4.1.0.0 \\ lib \\ NET40 \\ Microsoft.Practices.Prism.UnityExtensions .dll文件。 [错误和警告](全球)

我还有两个错误:

CA0052:未选择任何目标

CA0055运行代码分析时出错CA0055:C:\\ MyProject \\ bin \\ Release \\ IntraEUA管理软件2.0.exe读取模块“Microsoft.Practices.Prism.UnityExtensions”时遇到以下错误:无法解析程序集引用:Microsoft.Practices。 Unity,Version = 2.1.505.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35。 [错误和警告](全球)

但奇怪的是,在我的解决方案中我没有使用ersion 2.1.505.0的UnityExtensions,我使用的是4.1.0.0。 甚至更奇怪的是,在这个解决方案的所有其他项目中,使用完全相同的UnityExtensions版本,甚至PublicKeyToken在所有其他项目中都是相同的。

我试图在整个解决方案中搜索字符串“2.1.505.0”并没有找到任何内容。所以VS在哪里获取此信息?

顺便说一下,我使用NuGet获得了UnityExtension。 并尝试删除并重新安装UnityExtensions,但没有任何效果。 我正在使用.NET 4.5。

任何想法摆脱这个,可能是错误的错误? 或者至少有一种解决方法可以忽略它?

根本问题是由于两个事实的结合:

  1. Prism.UnityExtensions版本4.1.0.0引用版本2.1.505.0 Unity ,具有强名称,但您有一个较新的版本,与版本3.0.0.0强烈签名;
  2. 在其默认操作模式下,FxCop坚持程序集名称必须与引用匹配,包括具有确切的版本号,从而忽略程序集重定向(这是允许程序集组合在运行时工作的唯一因素);

这意味着,这个混乱不是你的错,只是试图使用库版本的“意外”组合,以及FxCop的汇编解析逻辑中的疏忽。

解决该问题的主要方法是将FxCop的AssemblyReferenceResolveMode设置为StrongNameIgnoringVersion 有一些方法可以实现这一点,一个在每台机器上设置,另一个在每个项目设置上。

  • 一个是像你一样,在FxCopCmd.exe.config (来自VS12调用)或FxCop.exe.config (命令行调用FxCop.exe )中将AssemblyReferenceResolveMode设置为StrongNameIgnoringVersion ;
  • 另一种是在PropertyGroup XML元素内的每个.csproj文件中添加一行:
<PropertyGroup>
  <CodeAnalysisAdditionalOptions>/assemblyCompareMode:StrongNameIgnoringVersion</CodeAnalysisAdditionalOptions>
</PropertyGroup>

我建议您为要与其他人共享的任何项目使用每个项目设置。

摆脱这个唯一的解决办法确实改变FxCopCmd.exe.config强名称StrongNameIgnoreVersionAssemblyReferenceResolveMode。 我没有想出任何其他的东西,所以我必须接受它。

我最近也有这个案子。 问题如下:我的项目的调试构建配置引发了针对any CPU平台的错误。 像解决方案中的其他项目一样将其更改为值x86已解决了该问题。

可以在Visual Studio中找到这些设置:*右键单击解决方案以打开解决方案资源管理器中的上下文菜单*选择属性,加载解决方案属性页对话框*您要查找的设置如下: Configuration Properties >> Configuration

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM