{“无法加载文件或程序集'AssemblyName,PublicKeyToken = null'或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(HRESULT的异常:0x80131040)”:“AssemblyName,PublicKeyToken =空“}
我正在尝试在签署正在使用的未签名第三方程序集后调试我的应用程序时收到有问题的消息InnerException.Message
。
奇怪的是,我已经签署了消息中显示的程序集,即无法加载的程序集。
这可能是什么问题?我该如何解决这个问题?
修改
编辑以提供有关我所做的更多信息:
抛出异常的程序集,顺便说一下,项目构建正常,这是我在该程序集InitializeComponent()
上运行的运行时异常,是一个带有WPF控件的开源组件(MahApps.Metro)。我发现了一个类似的问题,但没有一个答案解决了这个问题。
How to force WPF to use resource URIs that use assembly strong name? Argh!
答案 0 :(得分:24)
PublicKeyToken = null告诉您CLR正在寻找 unsigned 程序集。既然你签了他们,那就行不通了,这个kaboom是预料之中的。
您必须重建程序,以便它使用更新的已签名程序集并将非null的PublicKeyToken嵌入到清单中。您可能必须删除现有的程序集引用并将其添加回来,问题是否使用未签名的副本构建程序并不清楚。
如果仍有问题,请使用Fuslogvw.exe实用程序。
答案 1 :(得分:0)
还没有工作。
答案 2 :(得分:0)
我注意到你确实说你签了第三方图书馆,但也不要忘记签署你自己的使用第三方图书馆的程序集。最重要的是使用签名库的程序集。这就是我最近为自己解决这个问题的方法。
视觉工作室有时过于宽容,让我们能够超越自己的需要。其他时间?没那么多。
确保在进行更改后清理项目。然后重建解决方案。希望这会让你更进一步。