一个第三方DLL,用reflexil去除强命名后,就会报错误:
未能加载文件或程序集“Aspose.Words, Version=17.7.0.0, Culture=neutral, PublicKeyToken=716fcc553a201e56”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)
日志:
=== 预绑定状态信息 ===
日志: DisplayName = Aspose.Words, Version=17.7.0.0, Culture=neutral, PublicKeyToken=716fcc553a201e56
(Fully-specified)
日志: Appbase = file:///C:/Workspaces/WebApplication1/WebApplication1/
日志: 初始 PrivatePath = C:\Workspaces\WebApplication1\WebApplication1\bin
调用程序集: Aspose.Words, Version=17.7.0.0, Culture=neutral, PublicKeyToken=null。
===
日志: 此绑定从 default 加载上下文开始。
日志: 正在使用应用程序配置文件: C:\Workspaces\WebApplication1\WebApplication1\web.config
日志: 使用主机配置文件: C:\Users\xiaobo\Documents\IISExpress\config\aspnet.config
日志: 使用 C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config 的计算机配置文件。
日志: 在应用程序配置文件中找到重定向: 17.7.0.0 已重定向到 17.7.0.0。
日志: 策略后引用: Aspose.Words, Version=17.7.0.0, Culture=neutral, PublicKeyToken=716fcc553a201e56
日志: 尝试下载新的 URL file:///C:/Users/xiaobo/AppData/Local/Temp/Temporary ASP.NET Files/root/50cfcb26/530168ef/Aspose.Words.DLL。
日志: 尝试下载新的 URL file:///C:/Users/xiaobo/AppData/Local/Temp/Temporary ASP.NET Files/root/50cfcb26/530168ef/Aspose.Words/Aspose.Words.DLL。
日志: 尝试下载新的 URL file:///C:/Workspaces/WebApplication1/WebApplication1/bin/Aspose.Words.DLL。
警告: 比较程序集名称时发生不匹配: PUBLIC KEY TOKEN
错误: 未能完成程序集的安装(hr = 0x80131040)。探测终止。
去除后你要重新引用再编译啊
是重新引用的
@xiaobopoe: 看下你的config文件中针对这个地方是否重新写了assembly的信息。
@Daniel Cai: config中没有关于这个dll的配置,我查了一些帖子,加上自己测试,确实还是强命名没有去除干净,或者说是没有用正确的方法去除。好像要通过改PE Metadata之类的方式去除。完全看不懂。
Aspose.Words 有提供未签名的dll吧
有吗,在哪里能下载到
@xiaobopoe: 官网,或者nuget里面直接搜索,都是未签名的