2

我正在追查最近弹出的程序集加载/绑定错误。在我的调查中,我发现了一个令人困惑的矛盾(假设我正确解析了融合日志)。

我的应用程序在启动时抛出的异常状态:

{“无法加载文件或程序集 'Microsoft.Practices.CompositeUI, Version=1.0.51205.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自异常HRESULT: 0x80131040)":"Microsoft.Practices.CompositeUI,版本=1.0.51205.0,文化=中性,PublicKeyToken=31bf3856ad364e35"}

我最近所做的一些项目更改不应该需要强命名程序集“Microsoft.Practices.CompositeUI”。在确认我所有的解决方案项目确实引用了未签名的程序集之后,我启动了一个依赖浏览器以确保我没有遗漏任何东西。一切都检查过了,我确认我没有对旧程序集的任何“旧”引用。当然,我也清理并重建了我的项目。

然后我进一步研究并启动了融合日志查看器 (Fuslogvw.exe) 并将其配置为显示绑定错误。我查看了日志,发现绑定错误。详细日志是混乱开始的地方;它将“调用程序集”列为对缺少的程序集没有绑定(我可以确定)的程序集。啊,很难解释。这是日志:

*组装活页夹日志条目(11/15/2010 @ 7:00:18 PM)*

操作失败。

绑定结果:hr = 0x80131040。没有可用的描述。

从以下位置加载的程序集管理器:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\mscorwks.dll 在可执行文件 C:\Program Files\PMT\Office App\1.1.1.7\OfficeApp.exe 下运行

--- 详细的错误日志如下。

=== 预绑定状态信息 ===

日志:用户 = PMD\sklett

LOG:DisplayName = Microsoft.Practices.CompositeUI,Version=1.0.51205.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35(完全指定)

日志:Appbase = file:///C:/Program Files/PMT/Office App/1.1.1.7/

日志:初始 PrivatePath = NULL

日志:动态基础 = NULL

日志:缓存基础 = NULL

日志:AppName = OfficeApp.exe

调用程序集:Microsoft.Practices.EnterpriseLibrary.Common,Version=4.1.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35。

===

LOG:此绑定在默认加载上下文中开始。

LOG:使用应用程序配置文件:C:\Program Files\PMT\Office App\1.1.1.7\OfficeApp.exe.config

LOG:使用 C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\config\machine.config 中的机器配置文件。

日志:政策后参考:Microsoft.Practices.CompositeUI,版本=1.0.51205.0,文化=中性,PublicKeyToken=31bf3856ad364e35

日志:GAC 查找不成功。

日志:正在尝试下载新的 URL 文件:///C:/Program Files/PMT/Office App/1.1.1.7/Microsoft.Practices.CompositeUI.DLL。

LOG:程序集下载成功。尝试设置文件:C:\Program Files\PMT\Office App\1.1.1.7\Microsoft.Practices.CompositeUI.dll

LOG:进入从源代码运行设置阶段。

日志:程序集名称为:Microsoft.Practices.CompositeUI,版本=1.0.51205.0,文化=中性,PublicKeyToken=null

警告:比较程序集名称导致不匹配:PUBLIC KEY TOKEN

ERR:程序集引用与找到的程序集定义不匹配。

ERR:无法完成程序集的设置(hr = 0x80131040)。探测终止。

现在调用程序集“Microsoft.Practices.EnterpriseLibrary.Common”没有任何列出的(通过依赖项浏览器)对“Microsoft.Practices.CompositeUI”的依赖项。不仅如此,而且应该没有。

融合日志阻止了我的前进,融合日志导致了混乱!;0)

希望我为一些明智的专家提供了足够的信息,让我了解我所缺少的东西。

4

1 回答 1

1

我不确定答案是否合适或附加评论,如果我选择不正确,请原谅。;0)

好消息是重启后(实际上是断电)问题就消失了。我不知道如何或为什么解决了它,我在研究问题时非常细致,但果然重启让它消失了!

感谢 JeffN825 的坚持并提供帮助,我对您的一些评论投了赞成票。

于 2010-11-16T18:54:53.147 回答