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
Budowanie projektu.Spowoduje to wygenerowanie zestawy dla wszystkich kultur, które są lokalizowanie do.
Kliknij prawym przyciskiem myszy nazwę projektu w oknie Solution Explorer, a następnie kliknij przycisk Właściwości.
Kliknij przycisk Publikuj kartę, a następnie kliknij przycisk Pliki aplikacji.
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.
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.
Zamknij Pliki aplikacji okno dialogowe.
Aby pobrać zestawy na żądanie w C#
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.
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
W Właściwości okno aplikacji, kliknij przycisk aplikacji kartę.
U dołu strony kartę, kliknij Zdarzenia aplikacji widoku.
Dodaj następujące przywozu na początku pliku ApplicationEvents.VB.
Imports System.Deployment.Application Imports System.Globalization Imports System.Threading
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