Поделиться через


Пошаговое руководство. Загрузка вспомогательных сборок по требованию с помощью интерфейса API технологии развертывания ClickOnce

Обновлен: Ноябрь 2007

Приложения Windows Forms могут настраиваться для нескольких языков и регионов при помощи вспомогательных сборок. Вспомогательная сборка — это сборка, содержащая ресурсы приложения для языка, отличного от используемого по умолчанию языка приложения.

Как указывалось в разделе Развертывание и локализация ClickOnce, можно включить несколько вспомогательных сборок для нескольких культур в рамках одного развертывания ClickOnce. По умолчанию ClickOnce загружает все вспомогательные сборки в развертывание на клиентском компьютере, несмотря на то что для одного клиента может потребоваться только одна вспомогательная сборка.

В разборе этого примера демонстрируется способ маркировки вспомогательных сборок как необязательных и загрузка только сборки, необходимой клиентскому компьютеру для текущих параметров культуры. В следующей процедуре используются средства, доступные в SDK (пакет средств разработки программного обеспечения) для Windows. Эту задачу можно также выполнить в Visual Studio. Дополнительные сведения см. в разделах Пошаговое руководство. Загрузка вспомогательных сборок по требованию с помощью API развертывания ClickOnce с использованием конструктора и Пошаговое руководство. Загрузка вспомогательных сборок по требованию с помощью API развертывания ClickOnce с использованием конструктора и Пошаговое руководство. Загрузка вспомогательных сборок по требованию с помощью API развертывания ClickOnce с использованием конструктора.

ms404269.alert_note(ru-ru,VS.90).gifПримечание.

В следующем примере кода с целью проверки значение культуры программно установлено равным ja-JP. Далее в этой статье приводится раздел "Следующие действия", содержащий сведения о том, как скорректировать этот код для производственной среды.

Обязательные компоненты

В этой статье предполагается, что уже известно, как в приложение добавить локализованные ресурсы с использованием Microsoft Visual Studio 2005. Подробные инструкции см. в разделе Пошаговое руководство. Локализация форм Windows Forms.

Чтобы загрузить вспомогательные сборки по требованию

  1. Чтобы включить загрузку вспомогательных сборок по требованию, добавьте в приложение следующий код.

    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) или Visual Studio.

  3. Создайте манифест приложения или откройте манифест существующего приложения, пользуясь MageUI.exe. Дополнительные сведения об этом средстве см. в разделе Средство создания и редактирования манифестов, графический клиент (MageUI.exe).

  4. Откройте вкладку Файлы.

  5. Нажмите кнопку многоточие (...) и выберите каталог, содержащий все сборки и файлы приложения, включая вспомогательные сборки, созданные с помощью Resgen.exe. (Вспомогательная сборка будет иметь имя в формате isoCode\имя_приложения.resources.dll, где isoCode — идентификатор языка в формате RFC 1766.)

  6. Нажмите кнопку Заполнить, чтобы добавить файлы в развертывание.

  7. Установите флажок Дополнительная для каждой вспомогательной сборки.

  8. Установите поле группы для каждой вспомогательной сборки равным ISO-идентификатору языка. Например, для японской вспомогательной сборки следовало бы указать имя группы загрузки, равное ja-JP. Это позволит программному коду, добавленному на шаге 1, загрузить подходящую вспомогательную сборку в зависимости от настройки пользовательского свойства CurrentUICulture.

Следующие действия

Скорее всего, в производственной среде потребуется удалить строку в коде примера, где свойство CurrentUICulture устанавливается равным конкретному значению, так как клиентские компьютеры будут иметь правильное значение, заданное по умолчанию. Например, если приложение выполняется на японской клиентской машине, свойство CurrentUICulture по умолчанию будет иметь значение ja-JP. Программная установка этого значения представляет хороший способ проверки вспомогательных сборок перед развертыванием приложения.

См. также

Основные понятия

Развертывание и локализация ClickOnce