Preciso recriar um provedor no meu arquivo web.config que se parece com isso:
<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>
No entanto, recebo um erro de tempo de execução dizendo que este assembly não pode ser carregado e acho que é porque tenho o PublicKeyToken errado. Como procuro o PublicKeyToken para minha montagem?
Como alternativa, estou indo totalmente para o lado errado com isso?
.net
dll
.net-assembly
publickeytoken
Matthew Jones
fonte
fonte
Respostas:
Usando o PowerShell , você pode executar esta declaração:
A saída fornecerá a Versão , Cultura e PublicKeyToken, como mostrado abaixo:
fonte
Usando o utilitário sn.exe :
ou carregando a montagem no Refletor .
fonte
Se você tiver adicionado a DLL ao seu projeto, poderá abrir o arquivo csproj e ver a marca de referência.
Exemplo:
fonte
sn -T <assembly>
na linha de comando do Visual Studio. Se um assembly estiver instalado no cache global, é mais fácilC:\Windows\assembly
encontrá-lo na lista de assemblies do GAC.No seu caso específico, você pode estar misturando o nome completo do tipo com a referência de montagem; talvez queira dar uma olhada no MSDN .
fonte
A resposta é muito simples, use as ferramentas do .NET Framework
sn.exe
. Portanto, abra o prompt de comando do Visual Studio 2008 e aponte para a pasta da DLL que deseja obter a chave pública,Use o seguinte comando,
Isso fornecerá o token de chave pública. Lembre-se de uma coisa que só funciona se a montagem tiver que ser fortemente assinada.
Exemplo
fonte
Eu uso o Windows Explorer, navegue até C: \ Windows \ assembly, localize o que eu preciso. Nas propriedades, você pode copiar o PublicKeyToken.
Isso não depende do Visual Studio ou de qualquer outro utilitário instalado.
fonte
Apenas adicionando mais informações, não consegui encontrar o utilitário sn.exe nos locais mencionados, no meu caso, estava em C: \ Arquivos de Programas (x86) \ Microsoft SDKs \ Windows \ v7.0A \ bin
fonte
Vai resultar em
fonte
Como o @CRice disse, você pode usar o método abaixo para obter uma lista de assembly dependente com publicKeyToken
Eu geralmente uso como um script LinqPad, você pode chamá-lo como
DependencyInfo("@c:\MyAssembly.dll");
do códigofonte
Você também pode verificar seguindo o método
Vá para Executar: digite o caminho da DLL para o qual você precisa de chave pública. Você encontrará 2 arquivos: 1. __AssemblyInfo_.ini 2. Arquivo DLL
Abra este arquivo __AssemblyInfo_.ini no bloco de notas, aqui você pode ver Public Key Token.
fonte