【发布时间】:2010-11-24 01:39:06
【问题描述】:
System.IO.FileLoadException:无法加载文件或程序集“FOO,版本=1.0.3975.20137,Culture=neutral,PublicKeyToken=2aec35e026e7fee4”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。 (来自 HRESULT 的异常:0x80131040) 文件名:'FOO,版本=1.0.3975.20137
我有一个 C# 程序,我们会不断更新它并重新安装它,似乎自从我将项目从 VS2005 升级到 VS2010 和 .NET 从 2.0 升级到 4.0 之后,我在尝试引用时遇到了这个奇怪的错误上次安装的旧版本的 dll。
当我进入安装 Prorgam Files(x86)/.... 的目录时,最新版本的 DLL 就在其中。在代码中没有对旧 DLL 的引用。解决此问题的唯一方法是手动卸载程序并重新安装。之后程序运行正常。
我很困惑,为什么它甚至不存在时还要继续引用旧的 DLL 版本。我试过运行 fuslogvw.exe,但它没有产生任何有用的信息。我还认为这可能是我删除并从头开始重新创建的安装项目。我也完成了通常的清洁解决方案和重建。我已经通过论坛和在线搜索了所有内容,但大多数人似乎都有一个问题,即他们的 DLL 的旧版本仍在程序目录中,而新的 DLL 没有安装。我的问题正好相反。
【问题讨论】:
-
您需要让 Fuslogvw.exe 为您工作。记录所有绑定,不要忘记单击刷新。还要记录你是否有一台新机器。以及您的 EXE 项目的平台目标设置。