c# - VS从哪里获取旧的程序集引用元数据

标签 c# dll reference version .net-assembly

我尝试在 VS 中引用一个 dll 库,但它一直给出以下消息: (尝试加载的程序集是旧版本,我根本不引用它。但它仍然保存在某个地方,它阻止我引用较新的 dll 版本)

Could not load file or assembly '......, Version=......, Culture=neutral, PublicKeyToken=...........' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)

它从哪里获取版本号、 key token ...等以便我可以更改或删除它?

最佳答案

编译器从引用程序集中获取 [AssemblyVersion],该程序集位于项目的引用节点中。显然,在运行时它会找到该 DLL 的另一个版本。

像这样射击你的脚的方法并不多,在你的开发机器上,你可以通过将引用的复制本地属性设置为 True 来确保获得相同的版本。请注意 .config 文件,它故意告诉 CLR 去其他地方查找。如果这种情况发生在测试机器上,那么您部署项目的方式就有问题。如果您不知道 DLL 可能来自何处,请使用 Fuslogvw.exe 并记录所有绑定(bind)以跟踪 CLR 如何定位 DLL。

关于c# - VS从哪里获取旧的程序集引用元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12516473/

相关文章:

c# - 允许用户上传 .MOV 视频文件并在网站上显示

javascript - 如何在列表框中显示多个选定的项目

dll - 转储 Windows DLL 版本的命令行工具?

c++ - 如何在 Windows 7 上使用 cygwin 编译 C++ 文件

python - 带有 boost/dll 的 pybind - 双重使用 DLL?

c - 在 C 中通过引用传递

c - 如何修复 swapBack 函数以获得我想要的结果?

java - 将 Java 客户端字符串发送到 C# 服务器

c# - 如何检索用于启动 Fargate 任务的子网列表?

c++ - 为什么 GCC 5.3.0 在绑定(bind)对 "this"指针的引用时会发出警告