Comment signer a.NET DLL D'Assemblée avec un nom fort? [dupliquer]

cette question a déjà une réponse ici:

j'ai une assemblée qui n'a pas de nom fort. Je n'ai pas le code source.

j'ai maintenant besoin d'être signé. Est-il façon de le faire?

38
demandé sur Peter Mortensen 2009-08-03 07:02:30

5 réponses

si l'assemblage original est marqué pour une signature retardée, alors vous pouvez utiliser le sn.exe outil.

si l'assemblage d'origine n'est pas ainsi marqué, alors vous pouvez le démonter avec ildasm.exe, puis ré-assemble avec ilasm.exe et spécifier l'argument / key. Références:: [1] [2] .

exemple:

> ildasm /all /out=MYASSEMBLY.il MYASSEMBLY.dll
> ilasm /dll /key=key.snk MYASSEMBLY.il
13
répondu Cheeso 2014-03-24 18:51:38

Easy way to sign third party assembly utilise la version GUI de Assembly Strong Name Signer , disponible ici: http://brutaldev.com/post/2013/10/18/NET-Assembly-Strong-Name-Signer .

son code source est disponible sur Github. Utilise Mono.Cecil pour le sale boulot. Disponible aussi comme outil command line .

j'ai trouvé le recommandé ildasm - > ilasm aller-retour suggéré à plusieurs endroits encombrant et mieux à éviter.

je ne sais pas comment Assembly Strong Name Signer poignées multi-assemblée dépendances. Dans le cas contraire , le problème et sa solution est décrite ici (publié en 2008): http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/

8
répondu xmojmr 2014-03-19 17:19:21

utiliser le nom fort utilitaire outil ( sn.exe ).

3
répondu Joe Chung 2009-08-03 03:13:33

Regardez mon StrongNameResigner . Il peut signer ou démissionner une assemblée et toutes les assemblées qui en dépendent tout en mettant à jour toutes les références en utilisant une commande comme celle-ci:

StrongNameResigner.exe -a "c:\temp" -k "key.snk" Foo.Bar
2
répondu Martin 2015-02-19 14:12:50
You can sign the assembly with the help of VS command prompt.
Just type the path in VS cmd prompt where your project is physically present.

In VS cmd
<your project path>sn -k <name of your project>.snk

Then go to your project in Solution Explorer -> properties -> Signing -> check checkbox  
-> Browse to the key which is created using VS cmd.
-3
répondu K T 2013-05-09 14:00:40