强名称程序集(程序集签名)

更新:2007 年 11 月

本主题讨论如何对程序集签名,也经常称为对程序集赋予一个强名称。

备注

当使用 Visual C++ 时,请使用链接器选项对程序集签名,以免出现与程序集签名的 CLR 属性相关的问题:

不使用属性的原因包括密钥名称在程序集元数据中是可见的这一事实,如果文件名包括机密信息,这将导致安全风险。此外,如果使用 CLR 属性为程序集赋予一个强名称,然后在该程序集上运行 mt.exe 这样的后续处理工具,则 Visual C++ 开发环境使用的生成过程将导致对程序集签名所用的密钥无效。

如果在命令行上生成,使用链接器选项对程序集签名,然后运行后续处理工具(如 mt.exe),则需要使用 sn.exe 重新为程序集签名。或者,您可以生成并延迟为程序集签名,并且在运行后续处理工具后完成签名。

如果在开发环境中生成项目时使用签名属性,则可以通过在生成后事件中显式调用 sn.exe ( 强名称工具 (Sn.exe)) 来成功地对程序集进行签名。有关更多信息,请参见指定生成事件。如果您使用属性和生成后事件,则生成所需的时间会比使用链接器选项时短。

以下链接器选项支持程序集签名:

有关强程序集的更多信息,请参见创建和使用具有强名称的程序集

请参见

其他资源

.NET 编程指南