Jak zrobić znak zespołu, który został już wbudowany w dll specjalnie fletu.dll

Powodem, dla którego chcę podpisać bibliotekę dll jest to, że chcę dodać ją do globalnej pamięci podręcznej Assembly. Assembly jest silnikiem parsującym css napisanym w Javie i przeportowanym do J#. Używam VS2008, więc nie mogę tworzyć projektów J#. Nie ma przypisanego silnego klucza nazwy i nie mam pojęcia, jak to zrobić teraz, gdy jest zbudowany.

Ktoś ma jakieś pomysły?

Author: PJ8, 2009-09-04

5 answers

Po drobnych poszukiwaniach znalazłem Ten post , który wyjaśnia jeden sposób.

Exerpt:

Od a VS.NET wiersz polecenia, wpisz:

  1. Generowanie pliku kluczowego: klawiatura sn-K.snk
  2. uzyskać MSIL dla dostarczonego zestawu: ildasmdll /out:providedAssembly.il
  3. Zmień nazwę / przenieś oryginalny zestaw: / Align = "center" bgcolor = "# e0ffe0 " / cesarz chin / / align = center / dll / align = "left" / dll.orig
  4. Utwórz nowy zestaw z wyjścia MSIL i Pliku kluczowego zestawu: ilasm providedAssembly.il / dll / key= keyPair.snk
 42
Author: PJ8,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-04 18:21:32

Krok 1: demontaż zespołu

ildasm myTest.dll /out:myTest.il 

Krok 2: ponownie zmontować za pomocą klucza strong-name

ilasm myTest.il /res:myTest.res /dll /key:myTest.snk /out:myTestSN.dll 

Do weryfikacji można użyć następującego polecenia:

sn -vf myTestSN.dll
Mam nadzieję, że to pomoże!
 18
Author: Jeremy E,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-02-12 18:56:31

Ten link pokazuje również, jak to zrobić, w tym, gdy jedno ze składów stron trzecich, które podpisujesz, ma odniesienie do innego niepodpisanego zgromadzenia, które podpisujesz:

Http://buffered.io/posts/net-fu-signing-an-unsigned-assembly-without-delay-signing

Edit: sorry, link nie działa.

 3
Author: Wes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-09-14 17:45:08

Narzędzie Strong Name może ponownie podpisać istniejący zestaw, używając opcji-r. Jednak z tego, co rozumiem, Zgromadzenie musi być wcześniej podpisane lub podpisane z opóźnieniem... nie jestem pewien, czy możesz go użyć z niepodpisanym złożeniem, ale możesz spróbować

 1
Author: Thomas Levesque,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-09-04 18:29:19

Thx szczególnie PJ8 za zamieszczenie odpowiedzi 8 lat temu, która jeszcze dziś mnie uratowała. "Mój" assembly musiał przejść do Gac, ale był zależny od SQLite-pcl-net, który od wersji 1.3.1 nie ma silnej nazwy, chociaż jest teraz zależny od silnej nazwy sqlitepclraw.bundle_green. Więc musiałem podpisać SQLite-pcl-net, aby podpisać swój własny montaż innymi słowy. Skończyłem od kołyski do grobu .plik Bat skonsolidowany z informacji w tym poście i kilka innych miejsc, które dziś podróżowałem. "Plusy" są 1. to to .bat działa w miejscu montażu, które chcesz podpisać 2. pokazuje co najmniej wskazówkę, gdzie te trzy narzędzia mogą znajdować się na maszynie deweloperskiej. 3. pokazuje wszystkie kroki w kolejności. "Wadą" jest oczywiście to, że przebieg może się różnić w zależności od tego, gdzie ildasm, ilasm i sn są rzeczywiście zlokalizowane na danym komputerze. Zdrówko.

REM Create a new, random key pair
"c:\program files (x86)\microsoft sdks\windows\v8.1a\bin\NETFX 4.5.1 Tools\sn" -k SQLite-net.snk
REM Store the key in the container MySQLiteKeys in the strong name Cryptographic Services Provider (CSP).
"c:\program files (x86)\microsoft sdks\windows\v8.1a\bin\NETFX 4.5.1 Tools\sn" -i SQLite-net.snk MySQLiteKeys
REM Disassemble to Intermediate Language
"c:\program files (x86)\microsoft sdks\windows\v8.1a\bin\NETFX 4.5.1 Tools\ildasm" SQLite-net.dll /out:SQLite-net.il
REM Rename original file
ren SQLite-net.dll SQLite-net.dll.orig
REM Reassemble to a strong-named version
"c:\Windows\Microsoft.NET\Framework\v2.0.50727\ilasm" SQLite-net.il /dll /key=SQLite-net.snk /out:SQLite-net.dll 
REM Verify the assembly 
"c:\program files (x86)\microsoft sdks\windows\v8.1a\bin\NETFX 4.5.1 Tools\sn" -v SQLite-net.dll
REM Deletes MySQLiteKeys from the default CSP
"c:\program files (x86)\microsoft sdks\windows\v8.1a\bin\NETFX 4.5.1 Tools\sn" -d MySQLiteKeys
REM View results 
pause
 0
Author: IVSoftware,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-04-06 22:38:36