【发布时间】:2019-04-03 23:49:23
【问题描述】:
我有一个可以在我的旧 Windows 7 计算机上正常运行的程序。我将它的文件夹复制到我的新 Windows 10 计算机(没有需要更复杂安装过程的细节),但它突然无法运行。尝试在命令行上运行它给了我:
未处理的异常:System.IO.FileLoadException:无法加载文件或程序集“foo,Version=2.0.9.4,Culture=neutral,PublicKeyToken=32c39770e9a21a67”或其依赖项之一。强名称验证失败。 (来自 HRESULT 的异常:0x8013141A)---> System.Security.SecurityException:强名称验证失败。 (来自 HRESULT 的异常:0x8013141A) --- 内部异常堆栈跟踪结束 ---
这告诉我一点用处都没有。程序“或其依赖项之一”的强名称验证存在问题,我不知道它是哪一个,而且对于我的生活,我无法弄清楚如何找出问题所在!
我试过 FUSLOGVW。这台计算机上有多个不同的版本,我已经尝试过每一个,一次一个,确保将它们设置为记录绑定失败到光盘,尝试运行失败的程序,然后刷新 FUSLOGVW。什么都没有显示。
我已尝试针对该程序运行 sn.exe -v。它告诉我:
验证程序集失败 -- 强名称验证失败。
同样,这完全没用,因为我不知道发生了什么问题或原因。
我在这里找到了一些关于使用sn.exe 或各种注册表技巧来禁用强名称验证的答案。这不是我想做的;我想弄清楚问题是什么并解决它。再一次,这一切都很好,在我的 Windows 7 机器上使用完全相同的二进制文件。
我如何找出这个程序的强命名验证出了什么问题?
【问题讨论】:
标签: .net strongname