程序集绑定错误 - 融合日志和依赖关系浏览器不匹配

时间:2010-11-16 03:23:42

标签: .net fusion

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

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

  

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

我最近做的一些项目更改不应该要求强名称程序集“Microsoft.Practices.CompositeUI”。在确认我的所有解决方案项目确实引用了未签名的程序集之后,我启动了dependency browser以确保我没有遗漏任何内容。一切都检查出来,我确认我没有对旧组件的任何“旧”引用。当然,我也清理并重建了我的项目。

然后我进一步研究并启动了融合日志查看器(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

     

日志: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

     

日志:AppName = OfficeApp.exe

     

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

     

===

     

日志:此绑定在默认加载上下文中启动。

     

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

     

日志:使用C:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ config \ machine.config中的计算机配置文件。

     

日志:政策后参考:Microsoft.Practices.CompositeUI,Version = 1.0.51205.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35

     

日志:GAC查询失败。

     

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

     

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

     

日志:进入源自源设置阶段。

     

日志:程序集名称为:Microsoft.Practices.CompositeUI,Version = 1.0.51205.0,Culture = neutral,PublicKeyToken = null

     

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

     

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

     

错误:无法完成装配设置(hr = 0x80131040)。探测终止。

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

融合日志阻止了我的追踪,融合日志导致了CONfusion! ; 0)

希望我为一些聪明的专家提供了足够的信息,以便让我了解我所缺少的内容。

1 个答案:

答案 0 :(得分:1)

我不确定答案是否合适或是否有其他评论,如果我选错了,请原谅。 ; 0)

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

感谢JeffN825坚持并提供帮助,我投了一些你的意见。