Jaki jest najprostszy sposób na znalezienie tokenu klucza publicznego zestawu?
Najprostszym sposobem, o którym mogę pomyśleć, byłoby proste kliknięcie prawym przyciskiem myszy, uzyskanie klucza publicznego, ale tej funkcji nie ma, może jest do tego rozszerzenie Visual Studio?
Używam programu Visual Studio 2010, jeśli jest dostępne rozszerzenie.
.net
visual-studio
visual-studio-2010
public-key
moi_meme
źródło
źródło
Odpowiedzi:
Otwórz wiersz polecenia i wpisz jeden z następujących wierszy zgodnie z wersją programu Visual Studio i architekturą systemu operacyjnego:
VS 2008 w 32-bitowym systemie Windows :
VS 2008 w 64-bitowym systemie Windows:
VS 2010 w 32-bitowym systemie Windows:
VS 2010 w 64-bitowym systemie Windows:
VS 2012 w 32-bitowym systemie Windows:
VS 2012 w 64-bitowym systemie Windows:
VS 2015 w 64-bitowym systemie Windows:
Zauważ, że w wersjach VS2012 + aplikacja sn.exe nie jest już w bin, ale w podfolderze. Zwróć również uwagę, że w przypadku wersji 64-bitowej musisz określić folder (x86).
Jeśli wolisz używać wiersza polecenia programu Visual Studio, po prostu wpisz:
gdzie
<assemblyname>
jest pełna ścieżka do pliku, który Cię interesuje, ujęta w cudzysłowy, jeśli zawiera spacje.Możesz dodać to jako narzędzie zewnętrzne w VS, jak pokazano tutaj:
http://blogs.msdn.com/b/miah/archive/2008/02/19/visual-studio-tip-get-public-key-token -for-a-stong-named-assembly.aspx
źródło
"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe" -T <assemblyname>
. Uwaga sn jest schowana na jednym dodatkowym poziomie folderu za bin (w narzędziach NETFX 4.0).inna opcja:
jeśli używasz PowerShell, możesz dowiedzieć się, jak:
lubić
i będzie wyglądać jak
źródło
Jeśli biblioteka jest uwzględniona w projekcie VS, możesz sprawdzić
.cproj
plik, np:źródło
<Reference Include="System.Configuration" />
PublicKeyToken
, więc jedno spojrzenie w górę.cproj
wydaje się być najłatwiejszym rozwiązaniem.Jeśli umieściłeś zespół w swoim projekcie, możesz wykonać:
źródło
AppDomain.CurrentDomain.GetAssemblies()
. Spowoduje to wyświetlenie załadowanych zestawów w oknie bezpośrednim, z wersją, kulturą i tokenem PublicKeyToken dla każdego.Możesz to łatwo uzyskać za pomocą C #
źródło
typeof(YourPreferredTypeInThatAssembly).Assembly
lubAssembly.GetAssembly(typeof(YourPreferredTypeInThatAssembly))
i przekazać to do metody, jeśli chcesz.Możesz dodać to jako narzędzie zewnętrzne do programu Visual Studio w następujący sposób:
Tytuł:
Komenda:
(Ścieżka może się różnić w zależności od wersji)
Argumenty:
I zaznacz opcję „ Użyj okna wyjściowego ”.
źródło
Tools
menu będzie automatycznie działać na dowolnym projekcie wybranym w Eksploratorze rozwiązań.Get PublicKeyToken on Solution Explorer Selection
.Najprostszym sposobem jest dla mnie użycie ILSpy .
Po przeciągnięciu i upuszczeniu zestawu do jego okna i wybraniu upuszczonego zestawu po lewej stronie można zobaczyć token klucza publicznego po prawej stronie okna.
(Myślę też, że nowsze wersje będą również wyświetlać klucz publiczny podpisu, jeśli kiedykolwiek będziesz go potrzebować ... Zobacz tutaj: https://github.com/icsharpcode/ILSpy/issues/610#issuecomment-111189234 . Dobry towar! ;))
źródło
1) Polecenie jest
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\sn -T {your.dll}
W powyższym przykładzie Microsoft SDK znajduje się w C: \ Program Files \ Microsoft SDKs \ Windows \ v6.0A. Twoje środowisko może się różnić.
2) Aby uzyskać token klucza publicznego dowolnego projektu, możesz dodać plik sn.exe jako część narzędzi zewnętrznych w programie Visual Studio. Kroki są pokazane w tym łączu Microsoft: Jak: Tworzenie narzędzia do uzyskiwania klucza publicznego zestawu
źródło
W przypadku, gdy ktoś szukał zestawu Public Key (tak jak ja), a nie Public Key Token - użycie sn.exe działa świetnie, z wyjątkiem tego, że musisz użyć przełącznika -Tp , który zwróci zarówno klucz publiczny, jak i token klucza publicznego - więcej pod adresem https://msdn.microsoft.com/en-us/library/office/ee539398(v=office.14).aspx .
źródło
Alternatywnie możesz również użyć w
linq
ten sposób -źródło
.GetPublicKeyToken()
Alternatywną metodą byłoby, gdybyś miał dekompilator, po prostu poszukaj go tam, zwykle zapewniają one klucz publiczny. Patrzyłem na .Net Reflector, Telerik Just Decompile i ILSpy właśnie dekompilują, wydaje się, że wyświetlany jest token klucza publicznego.
źródło
Inną opcją jest użycie do tego narzędzia typu open source NuGet Package Explorer .
Z pakietu Nuget (.nupkg) można sprawdzić PublicKeyToken lub przeciągnąć plik binarny (.dll) w narzędziu. W tym drugim przypadku wybierz najpierw „Plik -> nowy”
źródło
Możesz użyć Ildasm. Exe (IL Disassembler), aby sprawdzić metadane zestawu, które zawierają w pełni kwalifikowaną nazwę.
Zgodnie z MSDN: https://msdn.microsoft.com/en-us/library/2exyydhb(v=vs.110).aspx
źródło