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 >