How can I see the strong name of my assembly?

折月煮酒 提交于 2019-12-22 02:00:04

问题


I have a project, and I created a strong name key file for it.

How can I tell what the strong name of my assembly is? It seems this should be obvious, but I can't find any reference to it.


回答1:


You can get the Fully Qualified Name by using a tool like Reflector or ILSpy. Select the assembly and it should be in top of it. For XNA in ILSpy :

// 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

If you don't want to use those tools, you can figure out the Fully Qualified Name using windows Explorer and Visual Studio Command Prompt.

First, right click on the Assembly DLL -> Properties -> Details. Here you can find the name, version and Culture of your Assembly.

For the public key, launch Visual Studio Command prompt and write :

sn -Tp YourAssembly.dll

It will give you the public key.

Now you can forge Fully Qualified Name.




回答2:


You can use the Strong Name tool to determine if the assembly is strongly named. In command prompt you can do this to verify it is a strong named assembly.

sn -v "C:\MyAssemblyPath"

and to get the public token, you can do this

sn -T "C:\MyAssemblyPath"

You can also use Reflector or ILSpy to find the public key token.

If you want to get the full name of the assembly, including the public token, you can use Assembly.FullName.

Assembly.GetExecutingAssembly().FullName;



回答3:


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);

If you know the filename, you can process the PE headers to find the strong name signature. }



来源:https://stackoverflow.com/questions/17375759/how-can-i-see-the-strong-name-of-my-assembly

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!