无法加载文件或程序集"AssemblyName PublicKeyToken = null"或其依赖项之一

Pan*_*lis 14 .net il strongname manifest disassembly

{"无法加载文件或程序集'AssemblyName,PublicKeyToken = null'或其依赖项之一.找到的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)":"AssemblyName,PublicKeyToken = null"}

我正在InnerException.Message尝试在签署正在使用的未签名第三方程序集之后调试我的应用程序时收到有问题的消息.奇怪的是,我已经签署了消息中显示的程序集,即无法加载的程序集.

这可能是什么问题?我该如何解决这个问题?

编辑

编辑以提供有关我所做的更多信息:

  • 签署了我的项目引用的所有未签名的第三方程序集.
  • 反汇编这些程序集以查看它们是否在内部引用任何外部未签名程序集(它们没有)
  • 从项目的引用列表中删除旧的未签名的程序集,并重新添加新签名的程序集.
  • 通过添加程序集引用中缺少的PublicKeyToken,卸载项目并编辑无法加载到.sln XML样式文件中的程序集的引用.

抛出异常的程序集,顺便说一下,项目构建正常,这是我正在构建的程序集的运行时异常InitializeComponent(),是一个带有WPF控件的开源组件(MahApps.Metro).我发现了一个类似的问题,但没有一个答案解决了这个问题.

如何强制WPF使用使用程序集强名称的资源URI?哎呀!

Han*_*ant 26

PublicKeyToken = null告诉您CLR正在查找未签名的程序集.既然你签了他们,那就行不通了,这个kaboom是预料之中的.

您将不得不重建程序,以便它使用更新的签名程序集并将非null的PublicKeyToken嵌入到清单中.您可能必须删除现有的程序集引用并将其添加回来,问题是否使用未签名的副本构建程序并不清楚.

如果仍有问题,请使用Fuslogvw.exe实用程序.