我有一个项目,为它创建了一个强名称密钥文件。
如何查看我的程序集的强名称?这似乎很明显,但我找不到任何参考资料。
我有一个项目,为它创建了一个强名称密钥文件。
如何查看我的程序集的强名称?这似乎很明显,但我找不到任何参考资料。
您可以使用Strong Name工具来确定程序集是否已被强命名。在命令提示符中,您可以执行以下操作以验证它是强命名程序集。
sn -v "C:\MyAssemblyPath"
要获取公共令牌,您可以这样做
sn -T "C:\MyAssemblyPath"
你还可以使用 Reflector 或 ILSpy 来查找公钥标记。
如果您想获取包括公钥标记在内的程序集完整名称,可以使用 Assembly.FullName。
Assembly.GetExecutingAssembly().FullName;
// C:\Program Files (x86)\Microsoft XNA\XNA Game Studio\v4.0\References\Windows\x86\Microsoft.Xna.Framework.dll
// Microsoft.Xna.Framework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=842cf8be1de50553
如果您不想使用这些工具,可以使用 Windows Explorer 和 Visual Studio 命令提示符来找出完全限定名称。sn -Tp YourAssembly.dll
它会给您提供公共密钥。Process[] processlist = Process.GetProcesses();
foreach(Process theprocess in processlist)
{
string strongName = "N/A";
try
{
strongName = Assembly.ReflectionOnlyLoadFrom(theprocess.MainModule.FileName).FullName;
}
catch
{
// System process?
}
Console.WriteLine("Process: {0} ID: {1} Strong Name: {2}", theprocess.ProcessName, theprocess.Id, strongName);
步骤1:通过在开始菜单中搜索“Visual Studio开发人员命令提示符”。
步骤2:C:\Windows\system32>它将出现在命令提示符上。
步骤3:根据您的意愿更改目录。您可以像这样给出您的解决方案目录 .cd D:\Learning\Projects\Biztalk\EAISchemas
步骤4:在命令提示符中,从要存储密钥文件的文件夹中,键入以下命令,然后按 ENTER:
sn /k file_name .snk
例如:sn /k ErrorHandlingProcess.snk
T
(已更新答案)。在 VS 中似乎没有办法直接实现这个功能,但你可以将sn.exe
添加到外部工具列表中,并将参数设置为-T $(TargetPath)
,这样就可以直接从 VS 中访问它了。我刚刚尝试了一下,似乎可以正常工作,并且每次从“工具”菜单中选择该工具时都会显示当前项目的公钥。 - keyboardP