Como: Fazer referência a 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 poderia ser 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 de 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 o /t:library opção 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 de tempo de execução para um assembly de nome forte (por exemplo, usando o Assembly.Load ou Assembly.GetType método), você deve usar o nome de exibição do referenciado fortes assembly. A sintaxe de uma nome de exibição é da seguinte maneira:
<nome de assembly>, <o número de versão>, <cultura>, <o token de chave pública>
Por exemplo:
myDll, Version=1.1.0.0, Culture=en, PublicKeyToken=03689116d3a4ae33
Neste exemplo, PublicKeyToken é o formato hexadecimal do token de chave pública. Se não houver nenhum valor de cultura, use Culture=neutral.
O exemplo de código a seguir mostra como usar essas informações com o Assembly.Load método.
Dim myDll As Assembly = _
Assembly.Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1")
Assembly myDll =
Assembly.Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1");
Assembly^ myDll =
Assembly::Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1");
Você pode imprimir o formato hexadecimal do token de chave pública e chave pública de um conjunto específico usando o seguinte Strong Name (sn. exe) 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>