Compartilhar via


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>

Consulte também

Conceitos

Criando e usando Assemblies de Nome Forte