Partilhar via


Como: Fazer referência a um assembly de nome forte

O processo de referência a tipos ou recursos em um assembly de nome forte geralmente é transparente. Você pode fazer a referência em tempo de compilação (vinculação antecipada) ou em tempo de execução.

Uma referência em tempo de compilação ocorre quando você indica ao compilador que o assembly a ser compilado faz referência explícita a outro assembly. Quando você usa a referência em tempo de compilação, o compilador obtém automaticamente a chave pública do assembly de nome forte de destino e a coloca na referência de assembly do assembly que está sendo compilado.

Nota

Um assembly de nome forte só pode usar tipos de outros assemblies de nome forte. Caso contrário, a segurança da assembleia de nome forte seria comprometida.

Fazer uma referência em tempo de compilação a um assembly de nome forte

Na linha de comandos, escreva o seguinte comando:

<comando>/referência do compilador:<nome do assembly>

Neste comando, o comando do compilador é o comando do compilador para a linguagem que você está usando, e assembly name é 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 faz referência a um assembly de nome forte chamado myLibAssembly.dll de um módulo de código chamado myAssembly.cs.

csc /t:library myAssembly.cs /reference:myLibAssembly.dll  

Fazer uma referência em tempo de execução a um assembly de nome forte

Quando você faz uma referência em tempo de execução a um assembly de nome forte, por exemplo, usando o Assembly.Load método or Assembly.GetType , você deve usar o nome de exibição do assembly de nome forte referenciado. A sintaxe de um nome para exibição é a seguinte:

<nome> do assembly,< número da> versão,< cultura>,< token de chave pública>

Por exemplo:

myDll, Version=1.1.0.0, Culture=en, PublicKeyToken=03689116d3a4ae33

Neste exemplo, PublicKeyToken é a forma hexadecimal do token de chave pública. Se não houver 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.

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");
Dim myDll As Assembly = _
    Assembly.Load("myDll, Version=1.0.0.1, Culture=neutral, PublicKeyToken=9b35aa32c18d4fb1")

Você pode imprimir o formato hexadecimal da chave pública e do token de chave pública para um assembly específico usando o seguinte comando Nome forte (Sn.exe ):

sn -Tp < montagem >

Se você tiver um arquivo de chave pública, poderá usar o seguinte comando em vez disso (observe a diferença de maiúsculas e minúsculas na opção de linha de comando):

sn -tp < arquivo de chave pública >

Consulte também