2009-08-03 2 views

Odpowiedz

3

Użyj narzędzia Strong Name Tool (sn.exe).

+0

Program sn.exe nie może tego zrobić, ponieważ program sn.exe może ponownie podpisać się przy użyciu nazwa pliku – guaike

+0

Myślę, że sn.exe działa, jeśli oryginalny zestaw jest oznaczony jako podpisany później. tak? – Cheeso

+2

do Cheeso: Tak, masz rację, znalazłem sposób: http: //ryanfarley.com/blog/archive/2010/04/23/sign-a-.net-assembly-with-a-strong-name- without-recompiling.aspx – guaike

12

Jeśli oryginalny zespół jest oznaczony do opóźnionego podpisu, można użyć narzędzia sn.exe.

Jeśli oryginalny zestaw nie jest tak oznaczony, można go zdekodować za pomocą programu ildasm.exe, a następnie skompletować go za pomocą programu ilasm.exe i podać argument/key. Referencje: [1][2].

Przykład:

> ildasm /all /out=MYASSEMBLY.il MYASSEMBLY.dll 
> ilasm /dll /key=key.snk MYASSEMBLY.il 
+0

http://msdn.microsoft.com/en-us/library/xc31ft41(VS.71).aspx MSDN powiedział używając: al /out:MyAssembly.dll MyModule.netmodule/keyfile: sgKey. snk. Ale nie udało mi się – guaike

+0

Co zrobić, aby zachować synchronizację pliku pdb? –

+0

Jeśli zespół odwołuje się do innej biblioteki DLL, którą również silnie podpisujesz, pojawiają się błędy informujące, że nie może znaleźć wersji bez podpisu. Czy istnieje sposób aktualizacji odwołanych sygnatur DLL w pliku? – Brain2000

-3
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. 
+0

OP: _ "Nie mam kodu źródłowego." _ – MickyD

8

Łatwy sposób do podpisania 3rd montaż partii jest używana wersja GUI z Assembly Strong Name Signer, dostępny tutaj: http://brutaldev.com/post/2013/10/18/NET-Assembly-Strong-Name-Signer.

Kod źródłowy jest dostępny na Github. Używa Mono.Cecil do brudnej pracy. Dostępne również jako narzędzie command line.

Znalazłem zalecany ildasm ->ilasm podróż w obie strony sugerowany w kilku miejscach uciążliwe i lepiej unikać. Nie mam pojęcia, jak

obsługuje zależności wielu złożenia. Jeśli tak się nie stanie, problem i jego rozwiązanie opisano tutaj (opublikowany w 2008 r.): http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing/

+0

bardzo łatwy w użyciu, dzięki! – tinamou

2

Spójrz na moją StrongNameResigner. Może podpisać lub zrezygnować ze złożenia i wszystkich zespołów, które zależą od niego, a także aktualizować wszystkie odwołania za pomocą polecenia podobnego do tego:

StrongNameResigner.exe -a "c:\temp" -k "key.snk" Foo.Bar