Aracılığıyla paylaş


İzlenecek yol: ClickOnce dağıtım API'siyle uydu derlemelerini isteğe bağlı olarak indirme

Windows Forms uygulamaları, uydu derlemeleri kullanılarak birden çok kültür için yapılandırılabilir. Uydu derlemesi , uygulamanın varsayılan kültürü dışındaki bir kültür için uygulama kaynaklarını içeren bir derlemedir.

ClickOnce uygulamalarını yerelleştirme bölümünde açıklandığı gibi, aynı ClickOnce dağıtımındaki birden çok kültür için birden çok uydu derlemesi ekleyebilirsiniz. Varsayılan olarak, ClickOnce dağıtımınızdaki tüm uydu derlemelerini istemci makinesine indirir, ancak tek bir istemci muhtemelen yalnızca bir uydu derlemesi gerektirir.

Bu izlenecek yol, uydu derlemelerinizi isteğe bağlı olarak işaretlemeyi ve yalnızca istemci makinesinin geçerli kültür ayarları için ihtiyaç duyduğu derlemeyi indirmeyi gösterir. Aşağıdaki yordam, Windows Yazılım Geliştirme Seti'nde (SDK) bulunan araçları kullanır. Bu görevi Visual Studio'da da gerçekleştirebilirsiniz. Ayrıca bkz. İzlenecek Yol: Tasarım Aracı veya İzlenecek yol kullanarak ClickOnce dağıtım API'siyle uydu derlemelerini isteğe bağlı olarak indirme: Tasarım Aracı kullanarak ClickOnce dağıtım API'siyle uydu derlemelerini isteğe bağlı olarak indirme.

Not

ApplicationDeployment Ad alanı içindeki System.Deployment.Application sınıf ve API'ler .NET Core ve .NET 5 ve sonraki sürümlerde desteklenmez. .NET 7'de, uygulama dağıtım özelliklerine erişmek için yeni bir yöntem desteklenir. Daha fazla bilgi için bkz . .NET'te ClickOnce dağıtım özelliklerine erişme. .NET 7, ApplicationDeployment yöntemlerinin eşdeğerini desteklemez.

Not

Test amacıyla, aşağıdaki kod örneği program aracılığıyla kültürü olarak ja-JPayarlar. Bu kodu üretim ortamı için ayarlama hakkında bilgi için bu konunun devamında yer alan "Sonraki Adımlar" bölümüne bakın.

Önkoşullar

Bu konuda, Visual Studio kullanarak uygulamanıza yerelleştirilmiş kaynaklar eklemeyi bildiğiniz varsayılır. Ayrıntılı yönergeler için bkz . İzlenecek yol: Windows formlarını yerelleştirme.

uydu derlemelerini isteğe bağlı olarak indirmek için

  1. Uydu derlemelerinin isteğe bağlı olarak indirilmesini etkinleştirmek için aşağıdaki kodu uygulamanıza ekleyin.

    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. Resgen.exe (Kaynak Dosya Oluşturucu) veya Visual Studio kullanarak uygulamanız için uydu derlemeleri oluşturun.

  3. MageUI.exe kullanarak bir uygulama bildirimi oluşturun veya mevcut uygulama bildiriminizi açın. Bu araç hakkında daha fazla bilgi için bkz. MageUI.exe (Bildirim Oluşturma ve Düzenleme Aracı, Grafik İstemci).

  4. Dosyalar sekmesine tıklayın.

  5. Üç nokta düğmesine (...) tıklayın ve Resgen.exe kullanarak oluşturduğunuz uydu derlemeleri de dahil olmak üzere uygulamanızın tüm derlemelerini ve dosyalarını içeren dizini seçin. (Uydu derlemesinin formda < bir adı olacaktırisoCode>\ApplicationName.resources.dll; burada <isoCode> RFC 1766 biçiminde bir dil tanımlayıcısıdır.)

  6. Dosyaları dağıtımınıza eklemek için Doldur'a tıklayın.

  7. Her uydu derlemesi için İsteğe bağlı onay kutusunu seçin.

  8. Her uydu derlemesinin grup alanını ISO dil tanımlayıcısına ayarlayın. Örneğin, bir Japon uydu derlemesi için indirme grubu adı ja-JPbelirtebilirsiniz. Bu, kullanıcının CurrentUICulture özellik ayarına bağlı olarak 1. adımda eklediğiniz kodun uygun uydu derlemesini indirmesini sağlar.

Sonraki adımlar

İstemci makineleri varsayılan olarak doğru değere sahip olacağı için üretim ortamında, kod örneğinde belirli bir değere ayarlayan CurrentUICulture satırı kaldırmanız gerekebilir. Örneğin, uygulamanız bir Japon istemci makinesinde çalıştırıldığında varsayılan CurrentUICulture olarak olacaktır ja-JP . Bu değeri program aracılığıyla ayarlamak, uygulamanızı dağıtmadan önce uydu derlemelerinizi test etmenin iyi bir yoludur.