Qual é a maneira mais simples de encontrar o Token de Chave Pública de um assembly?
A maneira mais simples de pensar seria com um simples clique com o botão direito do mouse, obter chave pública, mas essa funcionalidade não existe, talvez haja uma extensão do Visual Studio para isso?
Estou usando o Visual Studio 2010, se uma extensão estiver disponível.
.net
visual-studio
visual-studio-2010
public-key
moi_meme
fonte
fonte
Respostas:
Abra um prompt de comando e digite uma das seguintes linhas de acordo com sua versão do Visual Studio e Arquitetura do Sistema Operacional:
VS 2008 no Windows de 32 bits :
VS 2008 no Windows de 64 bits:
VS 2010 no Windows de 32 bits:
VS 2010 no Windows de 64 bits:
VS 2012 no Windows de 32 bits:
VS 2012 no Windows de 64 bits:
VS 2015 no Windows de 64 bits:
Observe que, para as versões VS2012 +, o aplicativo sn.exe não está mais na lixeira, mas em uma subpasta. Além disso, observe que para 64 bits você precisa especificar a pasta (x86).
Se você preferir usar o prompt de comando do Visual Studio, digite:
onde
<assemblyname>
há um caminho completo do arquivo para a montagem em que você está interessado, entre aspas, se houver espaços.Você pode adicionar isso como uma ferramenta externa no VS, como mostrado aqui:
http://blogs.msdn.com/b/miah/archive/2008/02/19/visual-studio-tip-get-public-key-token -for-a-stong-named-assembly.aspx
fonte
"%ProgramFiles(x86)%\Microsoft SDKs\Windows\v8.0A\bin\NETFX 4.0 Tools\sn.exe" -T <assemblyname>
. Nota sn está dobrado em um nível extra de pasta após a bandeja (no NETFX 4.0 Tools).outra opção:
se você usa o PowerShell, pode descobrir como:
gostar
e aparecerá como
fonte
Se a biblioteca estiver incluída no projeto VS, você poderá verificar o
.cproj
arquivo, por exemplo:fonte
<Reference Include="System.Configuration" />
PublicKeyToken
, portanto, procurar na.cproj
parece ser a solução mais fácil.Se você incluiu a montagem em seu projeto, você pode:
fonte
AppDomain.CurrentDomain.GetAssemblies()
. Isso listará os assemblies carregados na Janela Imediata, com Versão, Cultura e PublicKeyToken para cada um.Você pode obter isso facilmente via c #
fonte
typeof(YourPreferredTypeInThatAssembly).Assembly
ouAssembly.GetAssembly(typeof(YourPreferredTypeInThatAssembly))
passa isso para o método, se quiser.Você pode adicionar isso como uma ferramenta externa ao Visual Studio da seguinte maneira:
Título:
Comando:
(O caminho pode variar entre as versões)
Argumentos:
E marque a opção " Usar janela de saída ".
fonte
Tools
menu, ele opera automaticamente em qualquer projeto que você selecionou no Gerenciador de Soluções.Get PublicKeyToken on Solution Explorer Selection
.A maneira mais simples para mim é usar o ILSpy .
Ao arrastar e soltar o conjunto em sua janela e selecionar o conjunto solto à esquerda, você pode ver o token de chave pública no lado direito da janela.
(Também acho que as versões mais recentes também exibirão a chave pública da assinatura, se você precisar dessa ... Consulte aqui: https://github.com/icsharpcode/ILSpy/issues/610#issuecomment-111189234 . Coisa boa! ;))
fonte
1) O comando é
C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\sn -T {your.dll}
No exemplo acima, o Microsoft SDK reside em C: \ Arquivos de Programas \ Microsoft SDKs \ Windows \ v6.0A. Seu ambiente pode ser diferente.
2) Para obter o token de chave pública de qualquer projeto, você pode adicionar sn.exe como parte de suas Ferramentas Externas no Visual Studio. As etapas são mostradas neste link da Microsoft: Como: Criar uma ferramenta para obter a chave pública de um assembly
fonte
No caso de alguém estar procurando pela chave pública do assembly (como eu), não pelo token da chave pública - o uso do sn.exe funciona muito bem, exceto pelo uso da opção -Tp , que retornará a chave pública e o token da chave pública - mais em https://msdn.microsoft.com/en-us/library/office/ee539398(v=office.14).aspx .
fonte
Como alternativa, você também pode usar
linq
assim -fonte
.GetPublicKeyToken()
Um método alternativo seria se você tiver um descompilador, basta procurar lá, eles geralmente fornecem a chave pública. Eu observei .Net Reflector, Telerik Just Decompile e ILSpy apenas descompilam eles parecem ter o token de chave pública exibido.
fonte
Outra opção é usar a ferramenta de código aberto NuGet Package Explorer para isso.
Em um pacote Nuget (.nupkg), você pode verificar o PublicKeyToken ou arrastar o binário (.dll) na ferramenta. Para este último, selecione primeiro "Arquivo -> novo"
fonte
Você pode usar o Ildasm.exe (Desmontador de IL) para examinar os metadados do assembly, que contém o nome completo.
MSDN a seguir: https://msdn.microsoft.com/en-us/library/2exyydhb(v=vs.110).aspx
fonte