Compartilhar via


Conversão de assembly exportados

Qualquer ferramenta ou uma API que exporta um assembly para uma biblioteca de tipos deve converter o nível mais externo de um assembly gerenciado pela primeira vez.O processo converte cada assembly individual em uma biblioteca de tipo único, impondo mapeamento um-para-um entre assembly e biblioteca de tipos.Não é possível dividir um assembly em várias bibliotecas de tipo.Um assembly produz consistentemente a mesma biblioteca de tipos, independentemente do modo de conversão de seu ou detalhes.

Assembly e Type biblioteca identidades

Uma identidade de assembly consiste em quatro elementos listados na tabela a seguir.

Elemento

Descrição

Nome

Seqüência de caracteres usada para identificar o conjunto.Normalmente, essa seqüência é igual ao nome de arquivo do assembly sem a extensão.

Chave pública

emparelharte pública de uma criptografia pública/emparelharticular chave emparelhar.

Versão

Seqüência numérica de quatro partes consistindo importante, secundária, compilação e números de revisão.

Cadeia de caracteres de cultura

Localidade com suporte para o assembly.

Em combinação, esses campos produzem um nome forte para identificar um assembly.

Manifesto do assembly parcial

.assembly Sample as "Sample"
{
    publickey = (00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00   
                 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00   
                 B7 3C 60 FD 2D 6B E4 14 4E BD D1 B6 1A 09 FB F1   
                 23 FF A8 62 59 B3 86 0B 0A 73 10 98 51 E5 0E D6   
                 7E 10 2F A7 6E AF 1B E5 E8 F1 2E E6 9C F7 74 9A   
                 1A 9A 83 88 2C 70 C9 8B 52 AD 97 5C 23 52 D2 42   
                 D2 6C 64 14 E7 1D 1D 55 B4 F4 9C BB 86 7B 07 99   
                 E3 19 E8 E1 4A BC 7A 40 A6 A2 9D AD 96 9B E5 CA   
                 7C 10 5B 79 16 80 29 50 CD C3 63 D0 12 81 D0 18   
                 B4 AE DA EC CC ED 8E AF A4 08 14 05 C6 9C 7B C5)
  .ver 1:0:295:37445
  .locale = (65 00 6E 00 2D 00 55 00 53 00 00 00 )   // en-US
}

Por outro lado, uma identidade de biblioteca de tipo consiste em três elementos: um identificador de biblioteca (LIBID), a versão e uma identificação de local (LCID).Nem o nome do arquivo que contém as informações de tipo, nem o nome amigável definido dentro da biblioteca é parte da identidade da biblioteca.Você pode localizar uma biblioteca de tipos por meio do registro usando seu LIBID, versão e LCID.

Representação de biblioteca de tipo

[ uuid(0D26FC72-7EB1-4565-AA75-DA5F177EFA66),
  lcid(0x0409), 
  version(2.1), 
  helpstring("Acme Widget Library")
] 
library Acme 
{
…
}; 

Identificador de biblioteca (LIBID)

Quando o processo de exportar converte um assembly em uma biblioteca de tipos, ele preserva a identidade da biblioteca.Cada assembly identificado exclusivamente torna-se uma biblioteca de tipos identificadas com exclusividade.Para garantir a exclusividade, o processo de conversão usa o nome, versão e chave pública de um assembly para produzir um LIBID.

Especificamente, a combinação oferece as seguintes garantias:

  • Um nome, versão e combinação de chave pública consistentemente produz LIBID mesmo.

  • Dois módulos (assemblies) com outro nome, versão e combinações de teclas públicas nunca produzem LIBIDs mesmos.

Você pode aplicar GuidAttribute conjunto explicitamente o LIBID.

Versão e número da versão

O processo de conversão também passa informações de versão do conjunto de módulos (assembly) para a biblioteca de tipos, embora bibliotecas de tipos contêm apenas um número de versão de duas partes, enquanto os assemblies contêm um número de versão de quatro partes.Os números de versão principal e secundário de um assembly são transportados para a biblioteca de tipos.Números de versão do assembly são descartados na conversão, que indica que dois assemblys que difere somente pelos respectivos números de compilação sempre produzem a mesma biblioteca de tipos.Assemblies com 0 representando os números principais e secundários (0.0.X.X) produzem uma biblioteca de tipos com um número de 1.0 versão.

Em geral, são há garantias sobre o Sumário de uma biblioteca de tipos gerados a partir de várias versões do assembly.Não é garantia de um tipo definido na versão 1.0 de uma determinada biblioteca estar em uma segunda versão da mesma biblioteca.

Informações de localidade

Localidade de um assembly identificador seqüência (us-en, por exemplo) é convertida para um LCID e armazenada no campo LCID na biblioteca de tipos.Se a seqüência do ID de localidade no conjunto de módulos (assembly), o processo de exportar define o LCID para 0.

Períodos para sublinhados

Nomes assembly geralmente contêm pontos, que não são permitidos em nomes de tipo de biblioteca.O processo de exportar converte períodos no campo de nome de um assembly como sublinhados.

Helpstrings

O processo de exportar copia o AssemblyDescriptionAttribute Se aplicado a um assembly em time de design, à helpstring ou DocString associado a uma biblioteca de tipos. Nem o Arquivo de ajuda campo nem o HelpContext campo na biblioteca de tipos é conjunto.Nenhuma LIBFLAGS na biblioteca de tipos é conjunto.

Outros campos de assembly

Outros campos de assembly, sistema autônomo Processador, OSInformation, CodeBase, Alias, AssemblyHash, Configuração, and Sinalizadores são descartados durante a conversão.

O processo de exportar não define atributos de biblioteca de tipo, sistema autônomo oculto, restrito, and controle.

Consulte também

Conceitos

Conversão de módulo exportado

Conversão de tipo exportado

Conversão de membro exportado

Conversão do parâmetro exportado

Outros recursos

Conjunto de módulos (assembly) Type biblioteca conversão resumo