C# 已修改程序集的强名称验证不会失败

C# 已修改程序集的强名称验证不会失败,c#,.net-assembly,signing,C#,.net Assembly,Signing,我遵循这一点,我采取的步骤是: 我创建了一个强名称程序集,一个来自C#类的.dll 我从一个C#类生成b.exe,这个C#类有一个a.dll的引用(控制台应用程序中类似于Program.cs的类) 我运行了b.exe,它执行正确 我修改了名为a.dll的强名称,并通过sn-va.dll命令验证,结果是:“验证程序集失败--强名称验证失败。” 我再次运行b.exe,它可以工作,但我预期会出现FileLoadException错误,因为它是一个修改过的程序集。在这种情况下会发生错误 我的结果与视频中

我遵循这一点,我采取的步骤是:

  • 我创建了一个强名称程序集,一个来自C#类的.dll
  • 我从一个C#类生成b.exe,这个C#类有一个a.dll的引用(控制台应用程序中类似于Program.cs的类)
  • 我运行了b.exe,它执行正确
  • 我修改了名为a.dll的强名称,并通过
    sn-va.dll
    命令验证,结果是:“验证程序集失败--强名称验证失败。”
  • 我再次运行b.exe,它可以工作,但我预期会出现FileLoadException错误,因为它是一个修改过的程序集。在这种情况下会发生错误
    我的结果与视频中看到的不一样。有什么原因吗?

    我猜您使用的是.NET 3.5 SP 1或更高版本,我猜视频基于早期版本,或者应用了以下修复程序来禁用“强名称签名旁路”

    请访问

    从.NET Framework 3.5版Service Pack 1(SP1)开始,当程序集加载到完全信任的AppDomain中时,不会验证强名称签名。。。绕过强名称签名的验证可显著提高性能


    因此,他们更改了规则,前提是您在完全信任的情况下运行。

    链接的视频显示VS2010已被使用。