Názorný postup: Stahování satelitní sestavení na požádání s nasazení technologie ClickOnce rozhraní API pomocí Návrháře

Aplikace modelu Windows Forms lze nakonfigurovat pro více jazykových verzí prostřednictvím použití satelitních sestavení.Satelitní sestavení je sestavení obsahující prostředky aplikací pro jinou jazykovou verzi než výchozí jazykovou verzi dané aplikace.

Jak je popsáno v Lokalizování aplikací ClickOnce, můžete zahrnout více satelitních sestavení pro více jazykových verzí v rámci stejného nasazení ClickOnce.Ve výchozím nastavení stáhne ClickOnce všechny satelitní sestavení v nasazení do počítače klienta, přestože tento klient bude pravděpodobně vyžadovat pouze jedno satelitní sestavení.

V temto návodu je ukázáno, jak označit Vaše satelitní sestavení jako volitelné a stáhnout pouze sestavení, které klientský počítač potřebuje pro jeho aktuální nastavení jazykové verze.

[!POZNÁMKA]

Pro účely testování následující příklady kódu programově nastavují jazykovou verzi na ja-JP. V oddílu "Další postup" dále v tomto tématu naleznete informace, jak upravit tento kód pro výrobní prostředí.

Požadavky

Toto téma předpokládá, že víte, jak přidat lokalizované prostředky do Vaší aplikace pomocí Visual Studia.Podrobnější instrukce získáte v tématu Názorný postup: Lokalizace model Windows Forms.

Chcete-li označit satelitní sestavení jako volitelné

  1. Sestavte projekt.Tak vygenerujete satelitní sestavení pro všechny jazykové verze, na které se lokalizujete.

  2. Klikněte pravým tlačítkem myši na název projektu v Průzkumníku řešení a klikněte na Vlastnosti.

  3. Klikněte na kartu Publikovat a potom klikněte na tlačítko Soubory aplikace.

  4. Zvolte zaškrtávací políčko Zobrazit všechny soubory, chcete-li zobrazit satelitní sestavení.Ve výchozím nastavení budou všechna satelitní sestavení zahrnuta do nasazení a zobrazena v tomto dialogovém okně.

    Satelitní sestavení bude mít název ve formuláři isoCode\ApplicationName.resources.dll, kde je isoCode identifikátorem jazyka ve formátu RFC 1766.

  5. Klikněte na Nový... v seznamu Skupina stažení pro každý jazykový identifikátor.Po výzvě k zadání názvu skupiny stažení zadejte jazykový identifikátor.Například pro japonské satelitní sestavení byste měli zadat název skupiny stažení ja-JP.

  6. Zavřete dialogové okno Soubory aplikace.

Chcete-li stáhnout satelitní sestavení na požádání v jazyce C#

  1. Otevřete soubor Program.cs.Pokud tento soubor není v aplikaci Průzkumník řešení, zvolte projekt a v nabídce Projekt klikněte na Zobrazit všechny soubory.

  2. Použijte následující kód pro stažení odpovídajícího satelitního sestavení a spusťte aplikaci.

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

Chcete-li stáhnout satelitní sestavení na požádání v jazyce Visual Basic

  1. V okně Vlastnosti dané aplikace klikněte na kartu Aplikace.

  2. Dole na stránce karty klikněte na Zobrazit události aplikace.

  3. Přidejte následující importy na začátek souboru ApplicationEvents.VB.

    Imports System.Deployment.Application
    Imports System.Globalization
    Imports System.Threading
    
  4. Přidejte následující kód do třídy 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
    

Další kroky

V provozním prostředí bude pravděpodobně nutné odebrat řádek z ukázkových příkladů kódu, který nastavuje CurrentUICulture na určitou hodnotu, protože klientské počítače budou správnou hodnotu nastavenu ve výchozím nastavení. Při spuštění aplikace na japonském počítači klienta, například CurrentUICulture bude ve výchozím nastavení ja-JP.Nastavení programově představuje vhodný způsob testování Vašich satelitních sestavení před nasazením aplikace.

Viz také

Úkoly

Názorný postup: Stahování satelitní sestavení na požádání s nasazení technologie ClickOnce rozhraní API

Koncepty

Lokalizování aplikací ClickOnce