使用 ILMerge 将强命名程序集合并为 .Net 中的单个强命名程序集

Using ILMerge to merge strongly named assemblies into a single strongly named assemly in .Net

如果所有 .Net 程序集都使用相同的密钥对强命名,即相同的 .snk 文件,那么 ILMerge 实用程序 auotmatically 强合并所有这些程序集时使用相同的密钥对命名最终程序集,或者需要在 ILMerge 命令中指定 .snk 文件,如下面的命令片段所示?

我假设如果涉及的所有文件都使用相同的 .snk 文件进行了强命名,则无需指定 .snk 文件。

ilmerge /out:Merged.dll Primary.dll Secondary1.dll Secondary2.dll /keyfile:sg.snk

要对程序集进行强命名(并确保只有原作者才能这样做),需要私钥 (snk)。 ILMerge(或任何生成或修改程序集的工具)也需要它。

否则任何人都可以修改(并重新签名)程序集,这违背了签名的目的(保证作者身份)。