Muszę ponownie utworzyć dostawcę w moim pliku web.config, który wygląda mniej więcej tak:
<membership defaultProvider="AspNetSqlMemProvider">
<providers>
<clear/>
<add connectionStringName="TRAQDBConnectionString" applicationName="TRAQ" minRequiredPasswordLength="7" minRequiredNonalphanumericCharacters="0"
name="AspNetSqlMemProvider"
type="System.Web.Security.SqlMembershipProvider, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"
/>
</providers>
</membership>
Jednak pojawia się błąd czasu wykonania informujący, że nie można załadować tego zestawu, i myślę, że dzieje się tak, ponieważ mam zły klucz PublicKeyToken. Jak wyszukać PublicKeyToken dla mojego zestawu?
Alternatywnie, czy idę z tym całkowicie niewłaściwie?
.net
dll
.net-assembly
publickeytoken
Matthew Jones
źródło
źródło
Odpowiedzi:
Za pomocą programu PowerShell można wykonać następujące polecenie:
Dane wyjściowe dostarczą Version , Culture i PublicKeyToken, jak pokazano poniżej:
źródło
Za pomocą narzędzia sn.exe :
lub ładowanie zestawu w reflektorze .
źródło
Jeśli masz bibliotekę DLL dodaną do swojego projektu, możesz otworzyć plik csproj i zobaczyć znacznik Reference.
Przykład:
źródło
sn -T <assembly>
w wierszu polecenia Visual Studio. Jeśli zestaw jest zainstalowany w globalnej pamięci podręcznej zestawu, łatwiej jest przejść doC:\Windows\assembly
i znaleźć go na liście zestawów GAC.W twoim konkretnym przypadku możesz mieszać pełną nazwę typu z odniesieniem do zestawu, możesz rzucić okiem na MSDN .
źródło
Odpowiedź jest bardzo prosta, użyj narzędzi .NET Framework
sn.exe
. Więc otwórz wiersz polecenia programu Visual Studio 2008, a następnie wskaż folder dll, w którym chcesz uzyskać klucz publiczny,Użyj następującego polecenia,
Otrzymasz token klucza publicznego. Pamiętaj, że działa to tylko wtedy, gdy zestaw musi być silnie podpisany.
Przykład
źródło
Używam Eksploratora Windows, przejdź do C: \ Windows \ assembly, znajdź ten, którego potrzebuję. Z właściwości można skopiować PublicKeyToken.
Nie zależy to od zainstalowania programu Visual Studio ani innych narzędzi.
źródło
Właśnie dodając więcej informacji, nie byłem w stanie znaleźć narzędzia sn.exe we wspomnianych lokalizacjach, w moim przypadku było to w C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin
źródło
Spowoduje w
źródło
Jak powiedział @CRice, możesz użyć poniższej metody, aby uzyskać listę zależnego zestawu za pomocą publicKeyToken
generalnie używam go jako skryptu LinqPad, który można nazwać jako
DependencyInfo("@c:\MyAssembly.dll");
z koduźródło
Możesz również sprawdzić, wykonując następującą metodę.
Idź do Uruchom: wpisz ścieżkę DLL, dla którego potrzebujesz klucza publicznego. Znajdziesz 2 pliki: 1. __AssemblyInfo_.ini 2. Plik DLL
Otwórz ten plik __AssemblyInfo_.ini w notatniku, tutaj możesz zobaczyć Token klucza publicznego.
źródło