gpt4 book ai didi

.net - 如何调试 "strong name validation failed"?

转载 作者:行者123 更新时间:2023-12-05 06:27:09 25 4
gpt4 key购买 nike

我有一个程序可以在我的旧 Windows 7 计算机上正常运行。我将它的文件夹复制到我的新 Windows 10 电脑上,(没有细节需要更复杂的安装过程,)突然它无法运行。尝试在命令行上运行它会给我:

Unhandled Exception: System.IO.FileLoadException: Could not load file or assembly 'foo, Version=2.0.9.4, Culture=neutral, PublicKeyToken=32c39770e9a21a67' or one of its dependencies. Strong name validation failed. (Exception from HRESULT: 0x8013141A) ---> System.Security.SecurityException: Strong name validation failed. (Exception from HRESULT: 0x8013141A) --- End of inner exception stack trace ---

这告诉我没有任何用处。该程序“或其依赖项之一”的强名称验证存在问题,我不知道它是哪一个,而且对于我来说,我无法弄清楚如何找出问题所在!

我试过 FUSLOGVW。这台计算机上有多个不同的版本,我尝试了每一个,一次一个,确保它们被设置为记录绑定(bind)失败到光盘,尝试运行失败的程序,然后刷新 FUSLOGVW。没有任何显示。

我试过针对该程序运行 sn.exe -v。它告诉我:

Failed to verify assembly -- Strong name validation failed.

这又是完全没用的,因为我不知道哪里出错了或为什么出错。

我在此处发现了一些问题以及有关使用 sn.exe 或各种注册表技巧来禁用强名称验证的答案。这不是我想做的;我想弄清楚问题是什么并解决它。再一次,在我的 Windows 7 机器上,这一切都运行良好,使用完全相同的二进制文件。

我如何找出该程序的强命名验证出了什么问题?

最佳答案

假设该程序集可能已注册为在 Windows 7 机器上跳过强名称验证,如果您使用 sn.exe -Vu foo.dll 取消注册 foo,它会停止在那里工作吗.dll 从验证跳过?在这种情况下,您可能别无选择,只能在 Windows 10 计算机上使用 sn.exe -Vr foo.dll 来启用该程序集的验证跳过。您是否尝试从 Windows 7 机器上第二次复制程序集以从可能的答案集中排除随机损坏?是否签署了装配延迟或类似的东西? Windows 7 机器的 GAC 中是否有该程序集的工作版本?

关于.net - 如何调试 "strong name validation failed"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55505889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com