我用这个命令创建了一个密钥文件:
sn.exe -k 2048 Build.snk
我想用 .NET 读入这个密钥。我找不到任何关于.snk格式的文档,所以我想知道C#中是否有办法读取.snk文件?
我提出这个问题的最初原因是将 .snk 文件用于签署程序集以外的目的。正如下面的答案之一,.snk 文件的目的实际上只是用于签署程序集。
我用这个命令创建了一个密钥文件:
sn.exe -k 2048 Build.snk
我想用 .NET 读入这个密钥。我找不到任何关于.snk格式的文档,所以我想知道C#中是否有办法读取.snk文件?
我提出这个问题的最初原因是将 .snk 文件用于签署程序集以外的目的。正如下面的答案之一,.snk 文件的目的实际上只是用于签署程序集。
在这里找到了 MSDN 中的提及。这是代码:
public static void Main()
{
// Open a file that contains a public key value. The line below
// assumes that the Strong Name tool (SN.exe) was executed from
// a command prompt as follows:
// SN.exe -k C:\Company.keys
using (FileStream fs = File.Open("C:\\Company.keys", FileMode.Open))
{
// Construct a StrongNameKeyPair object. This object should obtain
// the public key from the Company.keys file.
StrongNameKeyPair k = new StrongNameKeyPair(fs);
// Display the bytes that make up the public key.
Console.WriteLine(BitConverter.ToString(k.PublicKey));
// Close the file.
fs.Close();
}
}
强命名密钥在编译时用于对编译器生成的程序集进行签名——因此在运行时读取它们可能不是您想要的。
要开始查找 C# 项目的“属性”窗口中的“签名”选项卡,您可以在此处选择使用什么 .snk 对程序集进行签名。
http://msdn.microsoft.com/en-us/library/xc31ft41(VS.100).aspx