CA0001,CA0058,,Assembly Binding Redirection and Code Analysis,无法解析程序集引用

今天在编译添加了程序集签名的工程的时候,意外遇到如下错误,试了很多方法都不见效。

下面是错误信息: 

CA0001 : 读取模块“***”时遇到以下错误: 无法解析程序集引用: ***.Common.NormalModel, Version=1.0.4629.31944, Culture=neutral, PublicKeyToken=366fc8dc0356ba75

CA0058 : 未能找到引用的程序集“***.Common.NormalModel, Version=1.0.4629.31944, Culture=neutral, PublicKeyToken=366fc8dc0356ba75”。此程序集是分析所必需的且已由 E:\WorkSpace\***Client.exe 引用。 

 

在网上搜索了同样的问题,看到了http://stackoverflow.com/questions/4042855/assembly-binding-redirection-and-code-analysis 这篇文章,里面也是遇到了同样的问题。

按它的说法,引起该问题的原因是程序集签名后默认会检测所引用的DLL和记录的版本,会强制要求引用时的版本必须和现在最新的DLL版本一致,否则会报错;

其实本身这个验证时OK的,也是合理的,但是我们开发期间,DLL太多了,我不可能随时都来修改这些版本号,因此,最好直接禁用了;

下面是禁用方法,就是将所有编译相关的PropertyGroup节点下加入

 <CodeAnalysisAdditionalOptions>/assemblyCompareMode:StrongNameIgnoringVersion</CodeAnalysisAdditionalOptions> 

 子节点,目的是在代码分析,强名称忽略版本差异;

原文地址:https://www.cnblogs.com/zjoch/p/2669890.html