Compartilhar via


Demonstra Passo a passo: Download de assemblies satélites sob demanda com a API de implantação do ClickOnce

Aplicativos Windows Forms podem ser configurados para várias culturas através do uso de assemblies satélites.A asssembly satélite é um assembly que contém recursos de aplicativo para uma cultura diferente de cultura do padrão do aplicativo.

Conforme discutido em Implantação ClickOnce e localização, você pode incluir vários assemblies de satélite para várias culturas dentro do mesmo ClickOnce implantação. Por padrão, ClickOnce será baixado todos os assemblies satélite na sua implantação para a computador cliente, embora um único cliente provavelmente exigirá apenas um satélite assembly.

Esta explicação passo a passo demonstra sistema autônomo marcar seus assemblies satélites sistema autônomo opcionais e baixe apenas o conjunto de uma computador cliente precisa para suas configurações de cultura.O procedimento a seguir usa as ferramentas disponível no Windows Software Development Kit (SDK). Você também pode executar essa tarefa em Visual Studio.

Observação:

Para fins de teste, o exemplo de código a seguir programaticamente define a cultura ja-JP.Consulte a seção "Próximas etapas" neste tópico para obter informações sobre como ajustar esse código para um ambiente de produção.

Pré-requisitos

Este tópico pressupõe que você saiba como adicionar recursos localizados ao seu aplicativo usando Microsoft Visual Studio 2005. Para obter instruções detalhadas, consulte Demonstra Passo a passo: Localizando Windows Forms.

Para fazer o baixar de assemblies satélites sob demanda

  1. Adicione o seguinte código ao seu aplicativo para ativar a varredura download de assemblies satélites.

    using System;
    using System.Collections.Generic;
    using System.Windows.Forms;
    using System.Threading;
    using System.Globalization;
    using System.Deployment.Application;
    using System.Reflection;
    
    namespace ClickOnce.SatelliteAssemblies
    {
        static class Program
        {
            [STAThread]
            static void Main()
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Thread.CurrentThread.CurrentUICulture = new CultureInfo("ja-JP");
    
                // Call this before initializing the main form, which will cause the resource manager
                // to look for the appropriate satellite assembly.
                GetSatelliteAssemblies(Thread.CurrentThread.CurrentCulture.ToString());
    
                Application.Run(new Form1());
            }
    
            static void GetSatelliteAssemblies(string groupName)
            {
                if (ApplicationDeployment.IsNetworkDeployed)
                {
                    ApplicationDeployment deploy = ApplicationDeployment.CurrentDeployment;
    
                    if (deploy.IsFirstRun)
                    {
                        try
                        {
                            deploy.DownloadFileGroup(groupName);
                        }
                        catch (DeploymentException de)
                        {
                            // Log error. Do not report error to the user, as there may not be a satellite
                            // assembly if the user's culture and the application's default culture match.
                        }
                    }
                }
            }
    
        }
    }
    
  2. Gerar assemblies de satélite para seu aplicativo usando Recurso Arquivo Generator (Resgen.exe) ou Visual Studio.

  3. Gerar um manifesto do aplicativo ou em em aberto seu manifesto do aplicativo existente, usando MageUI.exe.For more information about this tool, see Ferramenta de edição, cliente gráfico (MageUI.exe) e geração de manifesto.

  4. clicar no Arquivos guia.

  5. clicar no reticências botão (... ) e selecionar o diretório que contém todos os assemblies e arquivos, incluindo os assemblies de satélite gerada usando resgen.exe seu aplicativo.(Um satélite assembly terá um nome no formulário isoCode\ApplicationName.Recursos.dll, onde isoCode é um identificador de linguagem no formato RFC 1766.)

  6. clicar popular para adicionar arquivos à sua implantação.

  7. selecionar o Opcional caixa de seleção de cada satélite assembly.

  8. conjunto o campo de agrupar para cada asssembly satélite para seu identificador de linguagem ISO.Por exemplo, para um satélite em japonês assembly, você deve especificar um nome de agrupar baixar de ja-JP.Isso permitirá que o código adicionado na etapa 1 para baixar o asssembly satélite adequado, dependendo CurrentUICulture configuração da propriedade.

Próximas etapas

Em um ambiente de produção, provavelmente será necessário remover a linha no exemplo de código que define CurrentUICulture para um valor específico, como máquinas de cliente será o valor correto definiu padrão. Quando seu aplicativo é executado em uma computador cliente japonês, por exemplo, CurrentUICulture será ja-JP Por padrão. Definir esse valor por meio de programação é uma mercadoria maneira de testar seus assemblies satélites antes de implantar seu aplicativo.

Consulte também

Conceitos

Implantação ClickOnce e localização