Często konieczne jest odwołanie się do biblioteki poprzez użycie jej pełnej nazwy. Najwięcej czasu zajmuje znalezienie jaki Public Key Token został przydzielony bibliotece. W tym krótkim poście pokazane jest w jaki sposób podpiąć narzędzie, które bez wychodzenia z VS pokarze Public Key Token aktualnie używanej biblioteki.
Pełna nazwa biblioteki dll składa się z 4 członów: Assembly, Version, Culture, PublicKeyToken. Przykładowa nazwa wygląda następująco:
"System.Web, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"
Najczęściej żeby sprawdzić PublicKeyToken kopiuje się bibliotekę do GAC'a (ścieżka $:\Windows\assembly) i sprawdza we właściwościach jaki klucz posiada. Jest jednak szybsze i łatwiejsze wyjście z tej sytuacji. W tym celu wykorzystuje się narzędzie sn.exe (
opis funkcji) dostarczane razem z VisualStudio. Narzędzie mimo, że jest dostarczane z VisualStudio nie jest dostępne z poziomu interfejsu. Aby je dodać należy wykonać następujące kroki:
1. Uruchomić VisualStudio i wybrać Tools -> External Tools…
2. W oknie External Tools należy kliknąć guzik Add i wpisać odpowiednio uzupełnić pola
Title: Get Public Key
Command: C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\sn.exe - dla VisualStudio 2008
C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sn.exe - dla VisualStudio 2005
Arguments: -Tp "$(TargetPath)"
Uwaga !!! Należy odznaczyć wszystkie checkboxy, za wyjątkiem jednego przy Use Output window

Po ustawieniu wszystkich parametrów i kliknięciu guzika Apply funkcja Get Public Key pokaże się w menu rozwijanym Tools.
Dla zwiększenia wygody można skrót do funkcji Get Public Key wstawić na pasek w VisualStudio. Aby to wykonać należy kliknąć:
Następnie na zakładce Commands na liście Categories wybrać Tools i wtedy w oknie z prawej strony Commands wybrać External Command + numer. Numer jest to pozycja rozszerzenia w oknie External Tools. W tym przypadku jest to 6.
Gdy źródła są zbudowane i jest nadana silna nazwa Public Key Token możemy odczytać z okienka Output.
Dodany:
2009-07-29 23:18:48 przez
Michał Nikołajuk |
Wypowiedzi: 4