Share via


Demonstra Passo a passo: Download de assemblies satélites sob demanda com a API usando o Designer 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 de 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.

Observação:

Para fins de teste, o seguinte código exemplos programaticamente conjunto a cultura a ser 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.

Marcar assemblies satélite sistema autônomo opcionais

  1. Crie seu projeto.Isso gerará assemblies de satélite para todas as culturas a que estiver localizando.

  2. clicar com o botão direito do mouse no nome do seu projeto no gerenciador de soluções e clique em Propriedades.

  3. clicar no Publicar guia e, em seguida, clicar Arquivos de aplicativo.

  4. selecionar o Mostrar todos os arquivos a caixa de seleção para exibir os assemblies satélites.Por padrão, todos os assemblies satélites serão incluídos na sua implantação e estarão visíveis nesta caixa de diálogo.

    Um satélite assembly terá um nome no formulário isoCode\ApplicationName.Recursos.dll, onde isoCode é um identificador de linguagem no formato RFC 1766.

  5. clicar Novo... in the agrupar de baixar lista para cada identificador de linguagem.Quando for solicitado um nome de agrupar de baixar, insira o identificador de linguagem.Por exemplo, para um satélite em japonês assembly, especifique o nome de agrupar baixar ja-JP.

  6. fechar o Arquivos de aplicativo caixa de diálogo.

Para fazer o baixar de assemblies satélites sob demanda em translation from VPE for Csharp

  1. Abra o arquivo programa.cs.Se você não ver isso arquivo no gerenciador de soluções, selecionar o projeto e sobre o Projeto menu, clicar Mostrar todos os arquivos.

  2. Use o seguinte código para fazer o baixar do asssembly satélite adequado e iniciar seu aplicativo.

    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 this error to the user, because a satellite
                            // assembly may not exist if the user's culture and the application's
                            // default culture match.
                        }
                    }
                }
            }
    
        }
    }
    

Para fazer o baixar de assemblies satélites sob demanda no Visual Basic

  1. No Propriedades janela do aplicativo, clicar no Aplicativo guia.

  2. Na parte inferior da página da guia, clicar Exibir eventos de aplicativo.

  3. Adicione as importações seguintes no início do arquivo ApplicationEvents.VB.

    Imports System.Deployment.Application
    Imports System.Globalization
    Imports System.Threading
    
  4. Adicione o seguinte código à classe MyApplication:

    Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup
        Thread.CurrentThread.CurrentUICulture = New CultureInfo("ja-JP")
        GetSatelliteAssemblies(Thread.CurrentThread.CurrentUICulture.ToString())
    End Sub
    
    Private Shared Sub GetSatelliteAssemblies(ByVal groupName As String)
        If (ApplicationDeployment.IsNetworkDeployed) Then
    
            Dim deploy As ApplicationDeployment = ApplicationDeployment.CurrentDeployment
    
            If (deploy.IsFirstRun) Then
                Try
                    deploy.DownloadFileGroup(groupName)
                Catch de As DeploymentException
                    ' Log error. Do not report this error to the user, because a satellite
                    ' assembly may not exist if the user's culture and the application's
                    ' default culture match.
                End Try
            End If
        End If
    End Sub
    

Próximas etapas

Em um ambiente de produção, provavelmente será necessário remover a linha nos exemplos 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. Defini-la por meio de programação é uma mercadoria maneira de testar seus assemblies satélites antes de implantar seu aplicativo.

Consulte também

Tarefas

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

Conceitos

Implantação de ClickOnce e localização