Criando assemblies satélites

O modelo hub e spoke descrito no Empacotamento e implantação de recursos tópico é a implementação de design recomendado para o desenvolvimento de aplicativos com os recursos.

O modelo de hub e spoke requer que você coloque recursos em locais específicos, para que eles podem ser com com facilidade localizados e usados.Se você fizer não recursos de compilar e o nome conforme o esperado ou se você não coloque-sistema autônomo nos locais corretos, o common linguagem tempo de execução não poderá localizá-los.sistema autônomo resultado, o tempo de execução usa o padrão recurso definido.Para obter mais informações sobre nomes de recursos, consulte Classe CultureInfo or Empacotamento e implantação de recursos.

Compilando assemblies satélites

Use o Vinculador de assembly (Al.exe) para compilar arquivos .Recursos em assemblies satélites.Al.exe cria um assembly dos arquivos .Recursos que você especificar.Por definição, assemblies satélites só podem conter recursos.Eles não podem conter qualquer código executável.

O comando a seguir Al.exe cria um satélite assembly para o aplicativo MyApp do arquivo strings.de.resources.

al /t:lib /embed:strings.de.resources /culture:de /out:MyApp.resources.dll

O seguinte comando Al.exe também cria um asssembly satélite para o aplicativo MyApp do arquivo strings.de.resources. The /modelo opção faz com que o asssembly satélite herdar de metadados do assembly do assembly de pai MyApp.dll.

al /t:lib /embed:strings.de.resources /culture:de /out:MyApp.resources.dll
/template:MyApp.dll

A tabela a seguir explica as opções de Al.exe usadas nestes exemplos mais detalhadamente.

Opção

Descrição

/ t:lib

The /t opção especifica que o satélite assembly é compilado em um arquivo .dll (biblioteca).Um asssembly satélite não pode ser executado porque ele não contém código e não é assembly principal um aplicativo.Portanto, você deve salvar assemblies satélites sistema autônomo DLLs.

/ incorporar: strings.de.Recursos

The / incorporar opção especifica o nome do arquivo de fonte a ser usado ao Al.exe compila o assembly.Observe que você pode incorporar o .Recursos vários arquivos em um satélite assembly.No entanto, se você estiver seguindo o modelo de hub e spoke, você deve compilar um satélite assembly para cada cultura.No entanto, você pode criar arquivos .Recursos separado para cadeias de caracteres e objetos.

/cultura:de

The /Culture opção especifica a cultura do recurso para compilar.O tempo de execução usa essas informações quando procura os recursos para uma cultura especificada.Se você omitir esta opção, Al.exe ainda compila o recurso, mas o tempo de execução não poderão localizá-lo quando um usuário solicita a ele.

/out:MyApp.Recursos.dll

The /out opção especifica o nome do arquivo de saída.O nome deve seguir o padrão de nomeação baseNameRecursos.extensão, onde o baseName é o nome do assembly principal e o extensão é uma extensão viável (sistema autônomo .dll).Observe que o tempo de execução não é capaz de determinar a cultura de um satélite assembly com base no seu nome de arquivo de saída.Portanto, é importante especificar uma cultura com o /Culture opção descrita acima.

/modelo:nome do arquivo de

The /modelo opção especifica um assembly do qual herdar todos os metadados do assembly, exceto o campo de cultura.O assembly que herda do asssembly satélite deve ter um nome forte.

Para obter uma lista completa das opções disponível com Al.exe, consulte Vinculador de assembly (Al.exe).

Compilando assemblies satélites com nomes fortes

Se você quiser instalar assemblies de satélite na cache de assembly global, eles devem ter nomes fortes.Assemblies de nomes de alta segurança são assinados com um público válido / emparelharticular emparelhar de chaves.Para obter mais informações sobre nomes fortes, consulte Assemblies com nome forte.

Quando você está desenvolvendo um aplicativo, é improvável que você terá acesso ao público final / emparelharticular emparelhar de chaves.Para instalar um satélite assembly em global assembly armazenar em cache e garantir que ela funciona conforme esperado, você pode usar uma técnica chamada assinatura atrasada.Quando você atraso assinar um assembly, você reservar espaço no arquivo para a assinatura de nome forte no time de construção.A assinatura real é adiada até uma posterior data em que o público final / emparelharticular emparelhar de chaves está disponível.

Como obter a chave pública

Para atraso assinar um assembly, você deve ter acesso à chave pública.Ou você pode obter a chave pública real da organização na sua empresa que irá fazer assinatura eventual ou criar uma chave pública usando o nome forte ferramenta (sn.exe).

O comando a seguir sn.exe cria um teste pública/emparelharticular chave emparelhar e o salva no arquivo TestKeyPair.snk. The – k opção especifica o Sn.exe emparelhara criar um novo chave emparelhar e salvá-lo no arquivo especificado.

sn –k TestKeyPair.snk 

Você pode extrair a chave pública do arquivo que contém o emparelhar de chaves de teste.O comando a seguir extrai a chave pública de TestKeyPair.snk e o salva na PublicKey.snk.

sn –p TestKeyPair.snk PublicKey.snk

Atraso na Assinatura de um Assembly

Depois que você tiver obtido ou criou a chave pública, usar o Vinculador de assembly (Al.exe) para compilar o assembly e especificar atrasada de assinatura.

O comando a seguir Al.exe cria um satélite fortes assembly para o aplicativo MyApp do strings.ja.resources arquivo.

al /t:lib /embed:strings.ja.resources /culture:ja /out:MyApp.resources.dll /delay+ /keyfile:PublicKey.snk

The /atraso+ opção especifica para atrasar a assinatura do assembly.The /keyfile: opção especifica o nome do arquivo de chave que contém a chave pública para usar para atraso assinar o assembly.

Para obter mais informações sobre assinatura atrasada, consulte Atraso de assinatura de um assembly.

Observe que os assemblies de nome forte contenham informações de versão que o tempo de execução usa para determinar qual conjunto de módulos (assembly) usar para atender a uma solicitação de ligação.Para obter mais informações sobre esse tópico, consulte controle de controle de versão de assembly.

Assinar novamente um assembly

Posteriormente, um asssembly satélite assinatura atrasada deve ser assinado novamente com o real chave emparelhar.Você pode fazer isso usando sn.exe.

O seguinte comando sn.exe assina MyApp.resources.dll com o emparelhar de chaves real armazenado no arquivo RealKeyPair.snk. The – R opção especifica a sn.exe para assinar novamente um assembly anteriormente assinado ou assinado atraso.

sn –R MyApp.resources.dll RealKeyPair.snk 

Instalar um assembly satélite no cache de assembly global

O modelo global assembly cache é o primeiro local que o tempo de execução procura por recursos no processo de fallback de recurso.Para obter mais informações, consulte o subtópico "Processo de fallback de recursos" naEmpacotamento e implantação de recursos tópico. Portanto, é importante saber como instalar recursos para o global assembly cache.Está pronto para instalar em um asssembly satélite que você tenha compilado com um nome forte a cache de assembly global.Você pode instalar assemblies no cache usando o Ferramenta cache de assembly global (Gacutil.exe).

O seguinte comando Gacutil.exe instala MyApp.resources.dll no cache de assembly global.

gacutil /i:MyApp.resources.dll

The /i opção especifica a Gacutil.exe para instalar o conjunto especificado para o cache de assembly global.sistema autônomo resultado do comando, uma entrada é colocada no cache, que permite que sistema autônomo entradas desse arquivo .Recursos para serem acessados.Depois que está sendo instalado no cache, o recurso especificado está disponível para todos os aplicativos criados para usá-lo.

Locais de diretório do Satellite Assemblies não instalados no cache de assembly global

Após ter compilado seus assemblies satélites, todas elas têm o mesmo nome.O time de execução diferencia entre elas com base na cultura especificada no time de compilar com /Culture opção e por diretório local do cada assembly.Você deve colocar seus assemblies satélites em locais de diretório esperada.

A ilustração a seguir mostra um requisitos exemplo de estrutura e o local de diretório para aplicativos que você está instalando não no global assembly cache.Os itens com as extensões de arquivo .txt e .Recursos não serão entregue com o aplicativo final.Esses são os arquivos de recurso intermediário usados para criar os assemblies de recurso satélite final.Neste exemplo, você poderia substituir arquivos .resx para arquivos .txt.Os arquivos .resx são o único tipo de arquivo de recurso intermediário que pode conter objetos.

Diretório do asssembly satélite

Observação:

Se seu aplicativo incluir recursos para subcultures, coloque cada subcultura em seu próprio diretório.Não coloque subcultures subdiretórios do diretório de sua cultura principal.

Consulte também

Conceitos

Empacotamento e implantação de recursos

Atraso na Assinatura de um Assembly

Recursos em aplicativos

Referência

Vinculador do conjunto (AL.exe) 

Ferramenta Strong Name (Sn.exe)

Global ferramenta cache assembly (Gacutil.exe)