【问题标题】:Is strong signed the same as strong named for an assembly?强签名与为程序集命名的强相同吗?
【发布时间】:2012-10-22 21:51:44
【问题描述】:

strongly signed 和 strongly named .NET 程序集之间有区别吗?

如果是,我如何确定程序集是否使用 Visual Studio 进行了强签名(我知道如何检查它是否是强命名的)?

感谢您的帮助

编辑

背景:WiX: A Developer's Guide to Windows Installer XML 书中说您需要有一个强签名程序集才能将其安装到 GAC 中。

那么我需要在 GAC 中安装程序集:强名称还是签名程序集?

【问题讨论】:

  • 没有strongly signed。只有signed 和strongly named。
  • @Allostad:所以这似乎是我的参考资料中的一个错误(见编辑)?

标签: c# .net visual-studio-2010


【解决方案1】:

对程序集进行签名使其具有强名称。见Strong-named assemblies。

为了能够将其安装到 GAC 中,程序集需要具有强名称并因此进行签名。

【讨论】:

  • 所以,如果我理解正确的话:签署一个程序集是使其具有强命名的一部分。如果程序集是强命名的,则必须对其进行签名。这是正确的吗?
  • 是的。实际上,签署一个程序集是您需要做的所有事情以使其具有强命名。
【解决方案2】:

没有strongly signed。只有signed 和strongly named。

为了查明它是否被签名(即强命名或不是),用ildasm.exe打开它并点击树上的manifest并查看用于公钥令牌。如果有,则已签名。

例如,打开castle.core.dll 会显示这个(证明它是强命名的):

 .publickey = (00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00   // .$..............
                00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00   // .$..RSA1........
                77 F5 E8 70 30 DA DC CC E6 90 2C 6A DA B7 A9 87   // w..p0.....,j....
                BD 69 CB 58 19 99 15 31 F5 60 78 5E AC FC 89 B6   // .i.X...1.`x^....
                FC DD F6 BB 2A 00 74 3A 71 94 E4 54 C0 27 34 47   // ....*.t:q..T.'4G
                FC 6E EC 36 47 4B A8 E5 A3 82 31 47 D2 14 29 8E   // .n.6GK....1G..).
                4F 9A 63 1B 1A FE E1 A5 1F FE AE 46 72 D4 98 F1   // O.c........Fr...
                4B 00 0E 3D 32 14 53 CD D8 AC 06 4D E7 E1 CF 4D   // K..=2.S....M...M
                22 2B 7E 81 F5 4D 4F D4 67 25 37 0D 70 2A 05 B4   // "+~..MO.g%7.p*..
                87 38 CC 29 D0 92 28 F1 AA 72 2A E1 A9 CA 02 FB ) // .8.)..(..r*.....
  .hash algorithm 0x00008004
  .ver 2:5:1:0
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    相关资源
    最近更新 更多