Aracılığıyla paylaş


İzlenecek Yol: Tasarımcıyı Kullanarak ClickOnce Dağıtımı API'si ile İstek Üzerine Uydu Derlemeleri (Satellite Assemblies) İndirme

Windows Forms uygulamaları uydu derlemelerini kullanarak birden çok kültür için yapılandırılabilir. Uydu derlemesi uygulamanın varsayılan kültürü dışında bir kültür için uygulama kaynaklarını içeren bir derlemedir.

ClickOnce Uygulamalarını Yerelleştirme bağlantısında bahsedildiği gibi, aynı ClickOnce dağıtımı içinde birden fazla kültür için birden fazla uydu derlemesini dahil edebilirsiniz. Varsayılan olarak, tek bir kullanıcı için sadece bir uydu derlemesi gerekmesine rağmen ClickOnce dağıtımda yer alan tüm uydu derlemelerini istemci makinaya yükleyecektir.

Bu yöntem uydu derlemelerinizi nasıl 'isteğe bağlı' olarak işaretleyeceğinizi ve nasıl istemci bilgisayarın geçerli kültür ayarları için ihtiyaç duyduğu derlemeyi karşıdan yükleyeceğini gösterir.

Not

Sınama amacıyla, aşağıdaki kod örnekleri program aracılığıyla kültürü ja-JP olarak ayarlar. Bu kodu bir üretim ortamı üzerine ayarlama hakkında bilgi için bu konudan sonraki "Sonraki Adımlar" bölümüne bakın.

Önkoşullar

Bu konu Visual Studio kullanarak uygulamanıza, yerelleştirilmiş kaynakları nasıl ekleyeceğinizi bildiğinizi varsayar. Ayrıntılı yönergeler için, bkz. Walkthrough: Windows Forms Yerelleştirme

Uydu derlemelerini 'isteğe bağlı' olarak işaretlemek için

  1. Projenizi yapılandırın. Bu, yerelleştirmeyi yaptığınız tüm kültürler için uydu derlemelerini oluşturur.

  2. Çözüm Gezgini'nde proje adına sağ tıklayın ve Özellikler'i tıklayın.

  3. Yayımla sekmesini tıklayın ve sonra Uygulama dosyaları'nı tıklayın.

  4. Uydu derlemelerini görüntülemek için Tüm dosyaları göster onay kutusunu seçin. Varsayılan değer olarak, tüm uydu derlemeleri dağıtımınıza dahil edilir ve bu iletişim kutusunda görülebilir.

    Bir uydu derlemesi, isoCode\ApplicationName.resources.dll şeklinde bir ada sahip olacaktır. Burda isoCode RFC 1766 biçiminde bir dil tanımlayıcısıdır.

  5. Her dil tanımlayıcısı için Download Group (İndirme Grubu) listesinde Yeni...'yi tıklayın. İndirme grubu adı için uyarıldığınızda, dil tanımlayıcısını girin. Örneğin, Japonca uydu derlemesi için indirme grup adını ja-JP olarak belirtmelisiniz.

  6. Uygulama Dosyaları iletişim kutusunu kapatın.

İsteğe bağlı olarak C# üzerinde uydu derlemeleri indirmek için

  1. Program.cs dosyasını açın. Çözüm Gezgini'nde bu dosyayı göremezseniz, projenizi seçin ve Proje menüsünde Tüm Dosyaları Göster'i tıklayın.

  2. Uygun uydu derlemesini karşıdan yüklemek için aşağıdaki kodu kullanın ve uygulamanızı başlatın.

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

Visual Basic'te uydu derlemelerini talep edildiğinde karşıdan yüklemek için

  1. Uygulama için Özellikler penceresinde Uygulama sekmesini tıklayın.

  2. Sekme sayfası altında View Application Events'i (Uygulama Olaylarını Görüntüle) tıklayın.

  3. Aşağıdaki içeri aktarımları ApplicationEvents.VB dosyasının başına ekleyin.

    Imports System.Deployment.Application
    Imports System.Globalization
    Imports System.Threading
    
  4. Aşağıdaki kodu MyApplication sınıfına ekleyin.

    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
    

Sonraki Adımlar

Bir üretim ortamında, büyük olasılıkla istemci makinelere doğru değer varsayılan olarak ayarlanmış olduğundan kod örneklerindeki CurrentUICulture'ı belirli bir değere ayarlayan satırı kaldırmanız gerekecek. Örneğin, uygulamanız Japonca istemci makine üzerinde çalıştığında, CurrentUICulture varsayılan olarak ja-JP olacaktır. Uygulamanızı dağıtmadan önce, bunu program aracılığıyla ayarlama uydu derlemelerinizi test etmek için iyi bir yoldur.

Ayrıca bkz.

Görevler

İzlenecek Yol: ClickOnce Dağıtımı API'si ile İsteğe Bağlı Uydu Derlemelerini İndirme

Kavramlar

ClickOnce Uygulamalarını Yerelleştirme