-
这是为程序集签署强名称的最简单且最方便的方法。
-
程序集链接器 (Al.exe) 将 .NET Framework 代码模块(.netmodule 文件)与密钥文件链接。
-
AssemblyKeyNameAttribute 特性,具体取决于要使用的密钥文件所在的位置。
-
通过使用编译器选项。
如何:创建公钥/私钥对。
使用 Visual Studio 创建程序集并为程序集签署强名称
-
在“解决方案资源管理器”中,打开解决方案的快捷菜单,然后选择“属性”。
-
选择“签名”选项卡。
-
选择“为程序集签名”框。
-
若要创建新的密钥文件,请选择“<新建…>”,然后在“创建强名称密钥”对话框中输入其名称。
使用程序集链接器创建程序集并为程序集签署强名称
-
Visual Studio 命令提示符处,键入以下命令:
al /out:<assemblyName> <moduleName> /keyfile:<keyfileName>
其中:
- assemblyName
-
程序集链接器将发出的强签名的程序集的名称(.dll 或 .exe 文件)。
- moduleName
-
可以通过在 C# 或 Visual Basic 中使用/target:module 开关编译代码来创建 .netmodule 文件。
- keyfileName
-
程序集链接器解释与当前目录相关的相对路径。
MyAssembly.dll 签署强名称。
al /out:MyAssembly.dll MyModule.netmodule /keyfile:sgKey.snk
程序集链接器。
使用特性为程序集签署强名称
-
AssemblyKeyNameAttribute 特性添加到源代码文件中,并指定包含为程序集签署强名称时要使用的密钥对的文件或容器的名称。
-
通常会编译源代码文件。
|
|
|---|
|
你可以忽略这些警告。 |
keyfile.snk 的密钥文件(位于编译程序集的目录中)。
延迟为程序集签名。
使用编译器为程序集签署强名称
-
使用命令行编译器时,你可以将密钥文件复制到包含源代码文件的目录中。
延迟为程序集签名。
UtilityLibrary.dll 签署强名称。
csc /t:library UtilityLibrary.cs /keyfile:sgKey.snk