Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Windows Forms-program kan konfigureras för flera kulturer med hjälp av satellitsammansättningar. En satellitsammansättning är en sammansättning som innehåller programresurser för en annan kultur än programmets standardkultur.
Som beskrivs i Localize ClickOnce-program kan du inkludera flera satellitsammansättningar för flera kulturer i samma ClickOnce-distribution. Som standard laddar ClickOnce ned alla satellitsammansättningar i distributionen till klientdatorn, även om en enda klient förmodligen bara kräver en satellitsammansättning.
Den här genomgången visar hur du markerar dina satellitsammansättningar som valfria och hämtar endast den sammansättning som en klientdator behöver för sina aktuella kulturinställningar. Följande procedur använder de verktyg som är tillgängliga i Windows Software Development Kit (SDK). Du kan också utföra den här uppgiften i Visual Studio. Se även Genomgång: Ladda ned satellitsammansättningar på begäran med ClickOnce-distributions-API:et med hjälp av Designer eller Genomgång: Ladda ned satellitsammansättningar på begäran med ClickOnce-distributions-API:et med hjälp av Designer.
Anmärkning
Klassen ApplicationDeployment och API:erna System.Deployment.Application i namnområdet stöds inte i .NET Core- och .NET 5- och senare versioner. I .NET 7 stöds en ny metod för att komma åt egenskaper för programdistribution. Mer information finns i Access ClickOnce distributionsegenskaper i .NET. .NET 7 stöder inte motsvarigheten till ApplicationDeployment-metoder.
Anmärkning
I testsyfte anger följande kodexempel programmatiskt kulturen till ja-JP. Mer information om hur du justerar koden för en produktionsmiljö finns i avsnittet Nästa steg senare i det här avsnittet.
Förutsättningar
Det här avsnittet förutsätter att du vet hur du lägger till lokaliserade resurser i ditt program med hjälp av Visual Studio. Detaljerade anvisningar finns i Genomgång: Lokalisera Windows-formulär.
Ladda ned satellitsammansättningar på begäran
Lägg till följande kod i programmet för att aktivera nedladdning på begäran av satellitsammansättningar.
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. } } } } } }Generera satellitsammansättningar för ditt program med hjälp avResgen.exe (Resursfilgenerator) eller Visual Studio.
Generera ett programmanifest eller öppna ditt befintliga programmanifest med hjälp av MageUI.exe. Mer information om det här verktyget finns iMageUI.exe (manifestgenererings- och redigeringsverktyg, grafisk klient).
Klicka på fliken Filer .
Klicka på ellipsknappen (...) och välj katalogen som innehåller alla programsammansättningar och filer, inklusive de satellitsammansättningar som du genererade med hjälp avResgen.exe. (En satellitsammansättning har ett namn i formatet <isoCode>\ApplicationName.resources.dll, där <isoCode> är en språkidentifierare i RFC 1766-format.)
Klicka på Fyll i för att lägga till filerna i distributionen.
Markera kryssrutan Valfritt för varje satellitsammansättning.
Ange gruppfältet för varje satellitsammansättning till dess ISO-språkidentifierare. För en japansk satellitsammansättning anger du till exempel namnet på nedladdningsgruppen
ja-JP. På så sätt kan koden som du lade till i steg 1 ladda ned lämplig satellitsammansättning, beroende på användarens egenskapsinställning CurrentUICulture .
Nästa steg
I en produktionsmiljö behöver du förmodligen ta bort raden i kodexemplet som anger CurrentUICulture ett visst värde, eftersom klientdatorerna har rätt värde inställt som standard. När programmet till exempel CurrentUICulture körs på en japansk klientdator blir ja-JP det som standard. Att ställa in det här värdet programmatiskt är ett bra sätt att testa dina satellitsammansättningar innan du distribuerar programmet.