Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird erläutert, wie Sie eine App konfigurieren, die nicht mithilfe von MSIX (d. h. mit externem Speicherort oder entpackt) installiert ist, um die Bootstrapper-API zu verwenden, sodass sie die Windows App SDK Laufzeit explizit lädt und Windows App SDK APIs aufruft. Apps, die nicht über MSIX installiert sind, umfassen Apps, die mit externem Speicherort verpackt sind, und entpackte Apps.
Wichtig
Ab dem Windows App SDK 1.0 besteht der Standardansatz zum Laden der Windows App SDK aus einem Paket mit externem Speicherort oder entpackten Apps darin, auto-initialisierung über die Eigenschaft <WindowsPackageType> project zu verwenden (sowie zusätzliche Konfigurationsänderungen vorzunehmen). Die Schritte für die automatische Initialisierung im Kontext von WinUI 3 project finden Sie unter Create your first WinUI project. Oder, wenn Sie über ein vorhandenes Projekt verfügen, das nicht WinUI ist, lesen Sie Die Windows App SDK in einem bestehenden Projekt verwenden.
Wenn Sie erweiterte Anforderungen haben (z. B. benutzerdefinierte Fehlerbehandlung oder zum Laden einer bestimmten Version der Windows App SDK), können Sie stattdessen die Bootstrapper-API explizit aufrufen. Und das ist der Ansatz, den dieses Thema veranschaulicht. Für weitere Informationen siehe Windows App SDK-Laufzeit für Apps verwenden, die mit externem Speicherort gepackt oder nicht gepackt sind.
In diesem Thema wird das explizite Aufrufen der Bootstrapper-API aus einem einfachen Konsolen-App-Projekt gezeigt. Die Schritte gelten jedoch für alle entpackten Desktop-Apps, die die Windows App SDK verwenden.
Bevor Sie dieses Lernprogramm abschließen, empfehlen wir, die Runtime-Architektur zu überprüfen, um mehr über die Framework-Paketabhängigkeit zu erfahren, die Ihre App benötigt, wenn sie das Windows App SDK verwendet, sowie über die zusätzlichen Komponenten, die für den Betrieb in einer gepackten Umgebung mit externem Standort oder als entpackte App erforderlich sind.
Voraussetzungen
- Installieren Sie Tools für die Windows App SDK.
- Stellen Sie sicher, dass alle Abhängigkeiten für paketierte Apps mit externem Speicherort und entpackten Apps installiert sind (siehe Windows App SDK Bereitstellungshandbuch für frameworkabhängige Apps, die mit externem Speicherort verpackt sind oder entpackt werden). Eine einfache Möglichkeit, das zu tun, ist das Windows App SDK-Laufzeitinstallationsprogramm auszuführen.
Anweisungen
Sie können diesem Lernprogramm mithilfe eines C#- oder C++-project folgen.
Hinweis
Die dynamischen Abhängigkeiten und Bootstrapper-APIs schlagen fehl, wenn sie von einem erhöhten Prozess aufgerufen werden. Daher sollte Visual Studio nicht mit erhöhten Rechten gestartet werden. Weitere Informationen finden Sie unter Dynamic Dependencies unterstützt keine Erhöhung #567.
Führen Sie die folgenden Anweisungen aus, um ein C#-WinUI-Projekt zu konfigurieren, das entweder als Paket mit externem Speicherort oder ohne Paket vorliegt.
Erstellen Sie in Visual Studio eine neue C#-Console App project. Nennen Sie das Projekt DynamicDependenciesTest. Nachdem Sie das project erstellt haben, sollten Sie über eine C#-Konsolen-App "Hello, World!" verfügen.
Konfigurieren Sie als Nächstes Ihr Projekt.
- Klicken Sie in Solution Explorer mit der rechten Maustaste auf Ihre project, und wählen Sie Bearbeiten Project Datei aus.
- Ersetzen Sie den Wert des TargetFramework-Elements durch einen Zielframework-Moniker. Verwenden Sie beispielsweise Folgendes, wenn Ihre App auf Windows 10 Version 2004 ausgerichtet ist.
<TargetFramework>net8.0-windows10.0.19041.0</TargetFramework>- Speichern und schließen Sie die project Datei.
Ändern Sie die Plattform für Ihre Lösung in x64. Der Standardwert in einem .NET project ist AnyCPU, aber WinUI unterstützt diese Plattform nicht.
- Wählen Sie Build>Configuration Manager aus.
- Wählen Sie das Dropdownmenü unter Aktive Projektmappenplattform aus, und klicken Sie auf Neu, um das Dialogfeld Neue Projektmappenplattform zu öffnen.
- Wählen Sie im Dropdownmenü unter Neue Plattform eingeben oder auswählen die Option x64 aus.
- Klicken Sie auf OK, um das Dialogfeld Neue Lösungsplattform zu schließen.
- Klicken Sie in Configuration Manager auf Close.
Installieren Sie das Windows App SDK NuGet-Paket in Ihrem project.
- Klicken Sie in Solution Explorer mit der rechten Maustaste auf den Knoten Dependencies und wählen Sie Manage Nuget Packages aus.
- Wählen Sie im Fenster NuGet Package Manager das Browseregister aus, und installieren Sie das Paket Microsoft.WindowsAppSDK.
Sie können jetzt die Bootstrapper-API verwenden (siehe Nutzung der Windows App SDK Laufzeit für Apps, die mit externem Speicherort oder entpackt sind), um dynamisch eine Abhängigkeit vom Windows App SDK Frameworkpaket zu übernehmen. Auf diese Weise können Sie die Windows App SDK-APIs in Ihrer App verwenden.
Öffnen Sie die Program.cs Codedatei, und ersetzen Sie den Standardcode durch den folgenden Code, um die Bootstrap.Initialize-Methode aufzurufen, um den Bootstrapper zu initialisieren. Dieser Code definiert, welche Version der Windows App SDK die App beim Initialisieren des Bootstrappers abhängig ist.
Wichtig
Sie müssen den folgenden Code entsprechend Ihrer spezifischen Konfiguration bearbeiten. Lesen Sie die Beschreibungen der Parameter der Bootstrap.InitializeMethode, damit Sie eine der Versionen der Windows App SDK angeben können, die Sie installiert haben.
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(); } } }Im Kern ist die Bootstrapper-API eine native C/C++-API, mit der Sie die Windows App SDK-APIs in Ihrer App verwenden können. In einer .NET-App, die das Windows App SDK 1.0 oder höher verwendet, können Sie den .NET-Wrapper für die Bootstrapper-API verwenden. Dieser Wrapper bietet eine einfachere Möglichkeit, die Bootstrapper-API in einer .NET-App aufzurufen, als die systemeigenen C/C++-Funktionen direkt aufzurufen. Im vorherigen Codebeispiel werden die statischen Initialize und Shutdown Methoden der Bootstrap Klasse im .NET-Wrapper für die Bootstrapper-API aufgerufen.
Um zu veranschaulichen, dass die Windows App SDK Laufzeitkomponenten ordnungsgemäß geladen wurden, fügen Sie Code hinzu, der die klasse ResourceManager Windows App SDK verwendet, um eine Zeichenfolgenressource zu laden.
Fügen Sie Ihrem Projekt eine neue Resources File (.resw) hinzu (behalten Sie den Standardnamen bei).
Wenn die Ressourcendatei im Editor geöffnet ist, erstellen Sie eine neue Zeichenfolgenressource mit den folgenden Eigenschaften.
- Name: Meldung
- Wert: Hallo, Ressourcen!
Speichern Sie die Ressourcendatei.
Öffnen Sie die Program.cs Codedatei, und ersetzen Sie die
Console.WriteLine("Hello, World!");Zeile durch den folgenden Code.
// 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);- Klicken Sie auf "Ohne Debuggen starten" (oder starten Sie das Debuggen), um Ihre App zu erstellen und auszuführen. Die Zeichenfolge
Hello, resources!sollte erfolgreich angezeigt werden.
Wenn Ihr project WPF ist
Eine Windows Presentation Foundation(WPF)-App finden Sie unter Use the Windows App SDK in a WPF app.
Zugehörige Themen
Windows developer