c# - 升级到 .NET 4.0 并获取无法加载文件或程序集对已删除的旧版本 DLL 的引用

标签 c# .net reference

System.IO.FileLoadException: Could not load file or assembly 'FOO, Version=1.0.3975.20137, Culture=neutral, PublicKeyToken=2aec35e026e7fee4' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) File name: 'FOO, Version=1.0.3975.20137

我有一个我们不断更新并重新安装的 C# 程序,似乎自从我将项目从 VS2005 升级到 VS2010 并将 .NET 从 2.0 升级到 4.0 后,我在尝试引用时遇到了这个奇怪的错误上次安装的旧版本 dll。

当我转到其安装的 Prorgam Files(x86)/.... 的目录时,最新版本的 DLL 就在那里。在代码中没有对旧 DLL 的引用。解决此问题的唯一方法是手动卸载程序并重新安装。之后程序运行正常。

我很困惑,为什么它要继续引用一个旧的 DLL 版本,即使它不存在。我试过运行 fuslogvw.exe 但它没有产生任何有用的信息。我还认为这可能是我删除并从头开始重新创建的安装项目。我也完成了通常的清洁解决方案和重建。我已经通过论坛和在线搜索了所有内容,但大多数人似乎都遇到了一个问题,即旧版本的 DLL 仍在程序目录中,而新的 DLL 没有安装。我的问题正好相反。

最佳答案

当出于某种原因执行 Clean 操作忘记删除项目 bin 目录中的所有 dll 时,我会出现此错误,我不得不手动删除这些 dll。您可能想要检查所有相关的 dll 是否都作为更新过程的一部分被删除。我猜这就是卸载程序时发生的情况,这就是它当时可以工作的原因。

关于c# - 升级到 .NET 4.0 并获取无法加载文件或程序集对已删除的旧版本 DLL 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4258938/

相关文章:

c# - Ulam 的螺旋(质数螺旋)

c# - Google Cloud Storage .Net 客户端库文档?

c# - XDocument 在生成最终 xml 字符串时添加回车符

c# - 是否可以设置 DataGrid (SWF) 以调整到最佳大小?

c# - 如何使用 DataContractSerializer 仅序列化/反序列化基类属性?

c# - 是否应该让 IDisposable.Dispose() 安全地多次调用?

.net - 为什么 OWIN 的 SignInAsync() 不设置 IsAuthenticated (或其他身份验证变量)?

c++ - 当我希望调用基类构造函数时,如何在派生类中初始化成员 const 引用?

rust - 为什么不能在同一结构中存储值和对该值的引用?

arrays - 使用 shell 变量选择一个 bash 数组