Como: Referenciar um assembly de nome forte
O processo para referenciar tipos ou recursos em um assembly de nome forte é normalmente transparente.Você pode fazer a referência em tempo de compilação (ligação antecipada) ou em tempo de execução.
Uma referência em tempo de compilação ocorre quando você indica para o compilador que seu assembly referencia explicitamente outro assembly.Quando você usa referência em tempo de compilação, o compilador automaticamente obtém o chave pública do assembly de nome forte de destino e o coloca na referência do assembly que está sendo compilado.
Observação: |
---|
Um assembly de nome forte pode apenas usar tipos de outros assemblies de nome forte.Caso contrário, a segurança do assembly de nome forte estaria comprometida. |
Para fazer uma referência a um assembly de nome forte em tempo de compilação
No prompt de comando, digite o seguinte comando:
<comando do compilador > / reference: < nome do assembly >
Neste comando, comando do compilador é o comando do compilador para a linguagem que você está utilizando, e nome do assembly é o nome do assembly de nome forte que está sendo referenciado.Você também pode usar outras opções do compilador, como a opção /t:library para criar um assembly de biblioteca.
O exemplo a seguir cria um assembly chamado myAssembly.dll que referencia um assembly de nome forte chamado myLibAssembly.dll a partir de um módulo de código chamado myAssembly.cs.
csc /t:library myAssembly.cs /reference:myLibAssembly.dll
Para fazer uma referência a um assembly de nome forte em tempo de execução
- Quando você faz uma referência em tempo de execução a um assembly de nome-forte, usando, por exemplo, os métodos Assembly.Load ou Assembly.GetType, você deve usar o nome para exibição do assembly de nome forte referenciadoA sintaxe de uma nome de exibição é da seguinte maneira:
<nome do assembly >, < número da versão>, <culture>, <símbolo de chave pública >
Por exemplo:
myDll, Version=1.1.0.0, Culture=en, PublicKeyToken=03689116d3a4ae33
Nesse exemplo, o símbolo de chave pública é a forma hexadecimal do símbolo de chave pública.Se houver não valor cultural, utilize Cultura = Neutral .
O exemplo de código a seguir mostra como usar essas informações com o método Assembly.Load.
Assembly.Load("myDll,Version=1.0.0.1,Culture=neutral,PublicKeyToken=9b35aa32c18d4fb1")
Assembly.Load("myDll,Version=1.0.0.1,Culture=neutral,PublicKeyToken=9b35aa32c18d4fb1");
Você pode imprimir o formato hexadecimal da chave pública e do símbolo de chave pública para um assembly específico usando a seguinte ferramenta de Nome Forte (Sn.exe) de linha de comando:
sn - Tp < assembly >
Se você tiver um arquivo de chave pública, você pode usar o seguinte comando em vez disso (observe a diferença em relação ao caso da opção de linha de comando):
sn - tp < assembly >