【发布时间】:2013-07-12 23:41:48
【问题描述】:
我在一些用户机器上产生了这个异常(大约 20 个):
无法加载文件或程序集 'System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' 或其之一 依赖项。系统找不到指定的文件。
我在网络和这个网站上发现了几个关于这个错误的引用,但没有任何帮助。
我有一个使用 WCF 连接到服务器的加载项应用程序。使用 .NET Framework 3.5 和 VS 2008 构建的加载项。
只有一个用户帐户可以在其中一台测试机器上重现该错误。我安装了我的应用程序,并且只能从这台机器上的一个帐户复制它,其他任何地方都可以正常工作。此外,它只能通过我为其创建插件的一个版本的主机应用程序来重现(我假设是因为它使用了不同的 .NET 框架)。
我检查了保险丝日志并看到以下内容:
Assembly manager loaded from: C:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable C:\Program Files\SolidWorks Corp\SolidWorks\sldworks.exe
--- A detailed error log follows.
=== Pre-bind state information ===
LOG: User = Home\User
LOG: DisplayName = System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
(Fully-specified)
LOG: Appbase = file:///C:/Program Files/SolidWorks Corp/SolidWorks/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = NULL
Calling assembly : System.Configuration, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a.
所以由于某些原因,它试图使用v2.0.50727\mscorwks.dll 加载程序来加载System.dll 的Version=4.0.0.0。在构建机器上,我指的是 System.dll 的 2.0.0.0 版本。
【问题讨论】:
-
您指的是2.0版本。然而,“目标框架”的价值是多少?
-
感谢您的回答。目标框架设置为 3.5。事实上,我正在使用一些库到 3.5,比如序列化,所以我不能定位到 2.0。
-
Solidworks 不是您的程序。您也无法控制其 .config 文件。你是如何确定是你的插件产生了这个痕迹? .config 文件是什么样的?
-
是的,你说得对,我不是在控制 SolidWorks。但我可以处理异常(消息在本主题的主题中),所以我知道哪个 dll 失败了。此外,我比较了加载 SolidWorks 以及我的插件和不加载时生成的日志。这个失败的日志报告的区别之一。这是我的 app.config 文件的一部分。剩下的就是应用设置和绑定设置:
-
标签: c# .net frameworks