risposta

11

È possibile ottenere il nome completo utilizzando uno strumento come Reflector o ILSpy. Seleziona il gruppo e dovrebbe esserci sopra. Per 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

Se non si desidera utilizzare questi strumenti, si può capire il nome completo utilizzando Windows Explorer e Visual Studio Command Prompt.

Innanzitutto, fare clic con il pulsante destro del mouse su Assembly DLL -> Proprietà -> Dettagli. Qui puoi trovare il nome, la versione e la cultura della tua assemblea.

per la chiave pubblica, avviare Studio Command Prompt visivo e scrivere:

sn -Tp YourAssembly.dll

vi darà la chiave pubblica.

Ora è possibile creare un nome completo.

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

Se si conosce il nome file, è possibile elaborare PE headers to find the strong name signature. }

11

È possibile utilizzare lo strumento Strong Name per determinare se l'assembly è fortemente denominato. Nel prompt dei comandi è possibile eseguire questa operazione per verificare che si tratti di un assembly con nome sicuro.

sn -v "C:\MyAssemblyPath" 

e per ottenere il token pubblico, si può fare questo

sn -T "C:\MyAssemblyPath" 

È inoltre possibile utilizzare Reflector o ILSpy per trovare il token di chiave pubblica.

Se si desidera ottenere il nome completo dell'assieme, incluso il token pubblico, è possibile utilizzare Assembly.FullName.

Assembly.GetExecutingAssembly().FullName; 
+1

quindi ... non c'è modo di farlo da Visual Studio, quando viene caricata l'origine del progetto, quindi? –

+0

sn -t non ha funzionato per me .. Ho ottenuto "Impossibile convertire la chiave in token - Chiave pubblica assembly non valida." La risposta di Paul Gillen ha funzionato (-Tp), ma devo ammettere che sono frustrato dal fatto che questo non possa essere fatto all'interno di VS. Sembra sciocco dover ricorrere a una riga di comando per uno strumento di studio VISUAL. –

+0

Sì, mi spiace, dovrebbe essere una 'T' maiuscola (risposta aggiornata). Sembra strano non ci sia modo di farlo in VS ma puoi aggiungere 'sn.exe' alla lista di strumenti esterni e impostare l'argomento come' -T $ (TargetPath) ', quindi è possibile accedervi direttamente da VS . Ho appena provato e sembra funzionare bene e ora mostrerà la chiave pubblica del progetto corrente ogni volta che lo strumento viene selezionato dal menu 'Strumenti '. – keyboardP

Problemi correlati