Sdílet prostřednictvím


Kurz: Použití rozhraní API Bootstrapperu v aplikaci, která je zabalená s externím umístěním nebo je rozbalená a používá sadu Windows App SDK

Tento článek ukazuje, jak nakonfigurovat aplikaci, která není nainstalována pomocí MSIX (tj. je zabalena v externím umístění nebo není zabalena), aby používala rozhraní API bootstrapperu, aby explicitně nahrála runtime Windows App SDK a volala rozhraní API Windows App SDK. Aplikace, které nejsou nainstalované prostřednictvím MSIX, zahrnují aplikace zabalené s externím umístěním a rozbalené aplikace.

Důležité

Počínaje verzí Windows App SDK 1.0, se jako výchozí metoda načtení Windows App SDK z balíčku s externím umístěním nebo nebalené aplikace používá automatická inicializace prostřednictvím vlastnosti projektu <WindowsPackageType> (a prováděním dalších konfiguračních změn). Kroky, které se týkají automatické inicializace v kontextu projektu WinUI 3, najdete v tématu Vytvoření prvního projektu WinUI 3. Nebo pokud máte existující projekt, který není WinUI 3, přečtěte si téma Použití sady Windows App SDK v existujícím projektu.

Pokud máte pokročilé potřeby (například vlastní zpracování chyb nebo načtení konkrétní verze sady Windows App SDK), můžete místo toho explicitně volat rozhraní API bootstrapperu. A to je přístup, který toto téma ukazuje. Další informace najdete také v tématu Použití modulu runtime sady Windows App SDK pro aplikace zabalené s externím umístěním nebo rozbaleným.

Toto téma ukazuje, jak explicitně volat API bootstrapperu ze základního projektu konzolové aplikace. Postup však platí pro všechny nebalené desktopové aplikace, které používají sadu Windows App SDK.

Před dokončením tohoto kurzu doporučujeme, abyste si prostudovali architekturu modulu runtime pro získání dalších informací o závislosti balíčku Framework, kterou vaše aplikace má, když používá sadu Windows App SDK, a také o dalších komponentách potřebných pro fungování aplikace v balíčku s externím umístěním nebo pro fungování nerozbalené aplikace.

Požadavky

  1. Nástroje pro instalaci sady Windows App SDK.
  2. Ujistěte se, že jsou nainstalovány všechny závislosti pro aplikace zabalené s externím umístěním a nezabalené aplikace (viz průvodce nasazením Windows App SDK pro aplikace závislé na architektuře zabalené s externím umístěním nebo nezabalené). Snadným způsobem, jak to udělat, je spustit instalační program modulu runtime sady Windows App SDK.

Instrukce

Můžete postupovat podle tohoto kurzu pomocí projektu C# nebo C++.

Poznámka:

Dynamické závislosti a rozhraní API bootstrapperu selžou při zavolání procesem se zvýšenými oprávněními. V důsledku toho by visual Studio nemělo být spuštěno se zvýšenými oprávněními. Další podrobnosti najdete v části Dynamické závislosti nepodporují povýšení oprávnění #567.

Podle těchto pokynů nakonfigurujte projekt WinUI 3 jazyka C#, který je buď zabalený s externím umístěním, nebo rozbalený.

  1. Ve Visual Studiu vytvořte nový projekt konzolové aplikace C# . Pojmenujte projekt DynamicDependenciesTest. Po vytvoření projektu byste měli mít konzolovou aplikaci "Hello, World!" v jazyce C#.

  2. Dále nakonfigurujte projekt.

    1. V Průzkumníku řešeníklikněte pravým tlačítkem na váš projekt a vyberte Upravit soubor projektu.
    2. Nahraďte hodnotu prvku TargetFramework pomocí Target Framework Moniker. Pokud například vaše aplikace cílí na Windows 10 verze 2004, použijte následující kód.
    <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>
    
    1. Uložte a zavřete soubor projektu.
  3. Změňte platformu pro vaše řešení na x64. Výchozí hodnota v projektu .NET je AnyCPU, ale WinUI 3 tuto platformu nepodporuje.

    1. Vyberte sestavení>ve Správci konfigurace.
    2. V části Aktivní platforma řešení vyberte rozevírací seznam a kliknutím na Tlačítko Nový otevřete dialogové okno Nová platforma řešení .
    3. V rozevíracím seznamu pod položkou zadejte nebo vyberte novou platformu, a poté zvolte x64.
    4. Kliknutím na tlačítko OK zavřete dialogové okno Nová platforma řešení .
    5. V nástroji Configuration Manager klepněte na tlačítko Zavřít.
  4. Nainstalujte balíček NuGet sady Windows App SDK do projektu.

    1. V Průzkumníku řešeníklikněte pravým tlačítkem na uzel Závislosti a zvolte Spravovat balíčky NuGet.
    2. V okně Správce balíčků NuGet vyberte kartu Procházet a nainstalujte balíček Microsoft.WindowsAppSDK .
  5. Nyní jste připraveni použít rozhraní API bootstrapper (viz Použití modulu runtime Windows App SDK pro aplikace balené s externí umístěním nebo nebalené) k dynamickému navázání závislosti na balíčku struktury Windows App SDK. To vám umožní používat rozhraní API sady Windows App SDK ve vaší aplikaci.

    Otevřete soubor kódu Program.cs a nahraďte výchozí kód následujícím kódem, který zavolá metodu Bootstrap.Initialize pro inicializaci bootstrapperu. Tento kód definuje, na jaké verzi sady Windows App SDK je aplikace závislá při inicializaci zaváděcího nástroje.

    Důležité

    Níže uvedený kód budete muset upravit tak, aby vyhovoval vaší konkrétní konfiguraci. Prohlédněte si popisy parametrů metody Bootstrap.Initialize , abyste mohli zadat jednu z verzí sady Windows App SDK, kterou jste nainstalovali.

    using System;
    using Microsoft.Windows.ApplicationModel.DynamicDependency;
    
    namespace DynamicDependenciesTest
    {
        class Program
        {
            static void Main(string[] args)
            {
                Bootstrap.Initialize(0x00010002);
                Console.WriteLine("Hello, World!");
    
                // Release the DDLM and clean up.
                Bootstrap.Shutdown();
            }
        }
    }
    

    V samotném jádru je Bootstrapper API nativní rozhraní API C/C++, které umožňuje používat rozhraní API sady Windows App SDK ve vaší aplikaci. Ale v aplikaci .NET, která používá sadu Windows App SDK 1.0 nebo novější, můžete použít obálku .NET pro rozhraní API bootstrapperu. Tato obálka poskytuje jednodušší způsob, jak volat API bootstrapperu v aplikaci .NET, než přímo volat nativní funkce C/C++. Předchozí příklad kódu volá statické Initialize a Shutdown metody Bootstrap třídy v obalu .NET pro rozhraní bootstrapper API.

  6. Aby bylo prokázáno, že součásti modulu runtime sady Windows App SDK byly správně načteny, přidejte ukázkový kód, který používá třídu ResourceManager v sadě Windows App SDK k načtení řetězcového prostředku.

    1. Přidejte do projektu nový soubor zdrojů (.resw) ( ponechte výchozí název).

    2. S otevřeným souborem prostředků v editoru vytvořte nový řetězcový prostředek s následujícími vlastnostmi.

      • Název: Zpráva
      • Hodnota: Ahoj, prostředky!
    3. Uložte soubor prostředků.

    4. Otevřete soubor kódu Program.cs a nahraďte Console.WriteLine("Hello, World!"); řádek následujícím kódem.

    // Create a resource manager using the resource index generated during build.
       var manager = new Microsoft.Windows.ApplicationModel.Resources.ResourceManager("DynamicDependenciesTest.pri");
    
    // Look up a string in the .resw file using its name.
    Console.WriteLine(manager.MainResourceMap.GetValue("Resources/Message").ValueAsString);
    
    1. Klikněte na Spustit bez ladění (nebo Spustit s laděním) pro sestavení a spuštění vaší aplikace. Měl by se úspěšně zobrazit řetězec Hello, resources!.

Pokud je váš projekt WPF

Informace o aplikaci Windows Presentation Foundation (WPF) najdete v tématu Použití sady Windows App SDK v aplikaci WPF.