Udostępnij za pośrednictwem


Instruktaż: Pobieranie zestawami satelity na żądanie z wdrażania ClickOnce API za pomocą projektanta

Windows Forms aplikacji można skonfigurować wiele kultur, korzystając z zestawami satelity.A zestawu satelickiego jest to zespół, który zawiera zasoby aplikacji dla kultury, inne niż aplikacja domyślną kulturę.

Jak już wspomniano w Lokalizowanie ClickOnce aplikacji, może zawierać wiele zestawów satelitarnych dla wielu kultur, w tym samym ClickOnce wdrażania.Domyślnie ClickOnce pobierze wszystkie zestawy wdrożono do komputera klienckiego, mimo że pojedynczego klienta będzie prawdopodobnie wymagają zestawu satelickiego tylko jeden.

W tym instruktażu demonstruje, jak znak swoje zestawy jako opcjonalne i pobrać Zgromadzenia, komputer kliencki musi na jego bieżące ustawienia kultury.

[!UWAGA]

Do celów testowych w poniższych przykładach kodu programowo ustawić kultury na ja-JP.Zobacz sekcję "Następne kroki" w dalszej części tego tematu, aby uzyskać informacje o sposobach dostosowywania tego kodu do środowiska produkcyjnego.

Wymagania wstępne

W tym temacie założono, że wiesz, jak dodać zlokalizowanych zasobów w sieci usingVisual aplikacji Studio.Aby uzyskać szczegółowe instrukcje, zobacz Instruktaż: Lokalizowanie Windows Forms.

Aby oznaczyć zestawami satelity jako opcjonalne

  1. Budowanie projektu.Spowoduje to wygenerowanie zestawy dla wszystkich kultur, które są lokalizowanie do.

  2. Kliknij prawym przyciskiem myszy nazwę projektu w oknie Solution Explorer, a następnie kliknij przycisk Właściwości.

  3. Kliknij przycisk Publikuj kartę, a następnie kliknij przycisk Pliki aplikacji.

  4. Wybierz Pokaż wszystkie pliki pole wyboru, aby wyświetlić zestawy.Domyślnie wszystkie zestawy zostaną uwzględnione podczas wdrażania i będą widoczne w tym oknie dialogowym.

    Zestawu satelickiego będzie mieć nazwę w postaci isoCode\ApplicationName.resources.dll, gdzie isoCode to identyfikator języka w formacie RFC 1766.

  5. Kliknij przycisk Nowy... w Pobierania grupy listy dla każdego identyfikatora języka.Po wyświetleniu monitu dla nazwy grupy pobierania, wprowadź identyfikator języka.Na przykład dla zestawu japońskiego satelitarnego, można określić nazwę grupy pobierania ja-JP.

  6. Zamknij Pliki aplikacji okno dialogowe.

Aby pobrać zestawy na żądanie w C#

  1. Otwórz plik, plik Program.cs.Jeśli nie widzisz tego pliku w oknie Solution Explorer, zaznacz projekt i na Projekt menu, kliknij przycisk Pokaż wszystkie pliki.

  2. Aby pobrać zestawu satelickiego właściwe i uruchamiania aplikacji, należy użyć następującego kodu.

    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.
                        }
                    }
                }
            }
    
        }
    }
    

Aby pobrać zestawy na żądanie w języku Visual Basic

  1. W Właściwości okno aplikacji, kliknij przycisk aplikacji kartę.

  2. U dołu strony kartę, kliknij Zdarzenia aplikacji widoku.

  3. Dodaj następujące przywozu na początku pliku ApplicationEvents.VB.

    Imports System.Deployment.Application
    Imports System.Globalization
    Imports System.Threading
    
  4. Dodaj następujący kod do MyApplication klasy.

    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
    

Następne kroki

W środowisku produkcyjnym, prawdopodobnie trzeba będzie usunąć linię w przykładach kodu, które ustawia CurrentUICulture do określonej wartości, ponieważ klient maszyny będzie poprawna wartość ustawiono domyślnie.Gdy aplikacja działa na komputerze klienckim japońskich, na przykład, CurrentUICulture będzie ja-JP domyślnie.To ustawienie programowo jest dobrym sposobem sprawdzenia zestawów sieci satelitarnych, przed wdrożeniem aplikacji.

Zobacz też

Zadania

Instruktaż: Pobieranie zestawami satelity na żądanie z wdrażania ClickOnce API

Koncepcje

Lokalizowanie ClickOnce aplikacji