强名称程序集(程序集签名)(C++/CLI)

本主题讨论如何对程序集进行签名,通常称为为程序集提供强名称。

备注

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

不使用属性的原因包括密钥名称在程序集元数据中可见的事实,如果文件名包含机密信息,则可能是安全风险。 此外,Visual C++ 开发环境使用的生成过程将使程序集签名的密钥失效(如果使用 CLR 属性为程序集提供强名称),然后在程序集上运行 mt.exe 等处理后工具。

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

如果在开发环境中生成时使用签名属性,可以通过在生成后事件中显式调用 sn.exe(Sn.exe(强名称工具))来成功对程序集进行签名。 有关详细信息,请参阅指定生成事件。 与使用链接器选项相比,如果使用属性和生成后事件,生成时间可能更少。

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

有关强程序集的详细信息,请参阅创建和使用具有强名称的程序集

另请参阅

使用 C++/CLI (Visual C++) 进行 .NET 编程