我怎么能看到我的集会的强名?

我有一个项目,我为它创建了一个强名称密钥文件。

我怎么知道我的集会的强名是什么? 这似乎应该是显而易见的,但我找不到任何参考。

您可以使用Reflector或ILSpy等工具获取完全限定名称。 选择组件,它应该在它的顶部。 对于ILSpy中的XNA:

// 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资源管理器和Visual Studio命令提示符找出完全限定名称。

首先,右键单击Assembly DLL – > Properties – > Details。 在这里您可以找到大会的名称,版本和文化。

对于公钥,启动Visual Studio命令提示符并写入:

sn -Tp YourAssembly.dll

它会给你公钥。

现在你可以伪造完全合格的名字。

您可以使用强名称工具来确定程序集是否具有强名称。 在命令提示符下,您可以执行此操作以validation它是一个强命名的程序集。

 sn -v "C:\MyAssemblyPath" 

并获得公共令牌,你可以这样做

 sn -T "C:\MyAssemblyPath" 

您还可以使用Reflector或ILSpy查找公钥令牌。

如果要获取程序集的全名,包括公共令牌,可以使用Assembly.FullName 。

 Assembly.GetExecutingAssembly().FullName; 
 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); 

如果您知道文件名,则可以处理PE头以查找强名称签名 。 }