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>子节点,目的是在代码分析,强名称忽略版本差异;
分类:
技术类
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现