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 do parâmetro exportado
Outros recursos
Conjunto de módulos (assembly) Type biblioteca conversão resumo