2

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

无法加载文件或程序集 '......,Version=......,Culture=neutral,PublicKeyToken=............' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

它从哪里获得版本号、密钥令牌...等以便我可以更改或删除它?

4

1 回答 1

2

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

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

于 2012-09-20T17:12:09.203 回答