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.
Single-project MSIX ist eine Funktion, mit der Sie eine verpackte WinUI 3-Desktop-App erstellen können, ohne dass ein separates Verpackungsprojekt erforderlich ist. Eine WinUI-App ist eine App, die das WinUI Framework für die Benutzeroberfläche verwendet; und verwendet die Windows App SDK. Um eine Desktop-App, die nicht eine WinUI-App ist, zu verpacken, siehe Richten Sie Ihre Desktopanwendung für die MSIX-Paketierung in Visual Studio ein.
Das Single-project MSIX-Feature ist als Visual Studio Erweiterung verfügbar, die Sie für diese Szenarien verwenden können:
- Erstellen Sie eine new WinUI-Desktop-App mit der Blank App, Packaged (WinUI in Desktop) Visual Studio project Vorlage, die im Lieferumfang der Windows App SDK enthalten ist. Dieses Projekt ist so konfiguriert, dass Ihre App in ein MSIX-Paket erzeugt wird, ohne dass ein separates Verpackungsprojekt erforderlich ist.
- Ändern Sie eine bestehende WinUI-Desktop-App, die ein separates Verpackungsprojekt verwendet. Die Änderung umfasst das Entfernen des separaten Verpackungsprojekts, wie in der nachstehenden Abbildung dargestellt.
Übersicht
In diesem Abschnitt werden einige wichtige Details zum Single-project MSIX-Feature vorgestellt.
Vorteile
Vor der Einführung des Einzelprojekt-MSIX-Features benötigten Sie, wenn Sie eine verpackte WinUI-Desktop-App erstellen wollten, zwei Projekte in Ihrer Lösung – Ihr App-Projekt sowie ein zusätzliches Windows-Anwendungspaketprojekt (siehe Richten Sie Ihre Desktop-Anwendung für die MSIX-Verpackung in Visual Studio ein). Mit dem Single-Project-MSIX-Feature können Sie Ihre App entwickeln und erstellen, indem Sie lediglich ein einzelnes Projekt dafür verwenden. Das bietet eine übersichtlichere project Struktur und eine einfachere Entwicklungserfahrung. Beispielsweise müssen Sie das separate Verpackungsprojekt nicht mehr als Startprojekt auswählen.
Unterstützte Projekttypen
Das MSIX-Feature mit einem einzigen Projekt unterstützt WinUI-Vorlagen in Visual Studio (C# und C++) für das Windows-App-SDK.
Begrenzungen
Single-project MSIX unterstützt nur eine einzelne ausführbare Datei im generierten MSIX-Paket. Wenn Sie mehrere ausführbare Dateien in einem einzigen MSIX-Paket kombinieren müssen, müssen Sie weiterhin ein Windows Application Packaging Project in Ihrer Lösung verwenden.
Installieren Sie die Einzelprojekt-MSIX-Paketierungstools
Die MSIX-Paketierungstools für Einzelprojekte umfassen Visual Studio-Projektvorlagen, mit denen Sie neue verpackte WinUI-Desktop-Apps erstellen können. Diese Tools sind in der Windows App SDK Erweiterung für Visual Studio enthalten. Installationsanweisungen für die Windows App SDK finden Sie unter Install-Tools für die Windows App SDK.
Windows App SDK 0.8 und C#-Version 1.0 Vorschau 3: Die MSIX-Projektverpackungstools sind nicht in der Windows App SDK-Erweiterung für Visual Studio für Windows App SDK Version 0.8 oder für C#-Projekte bis einschließlich Vorschau 3 der Windows App SDK Version 1.0 enthalten. Wenn Sie diese Versionen verwenden, müssen Sie möglicherweise die MSIX-Projekt-Verpackungstools explizit installieren. Siehe die unten stehenden Informationen:
Visual Studio 2022, Version 17.1 und höher: Die Single-project MSIX Packaging Tools for Visual Studio 2022 VSIX Erweiterung ist in Visual Studio 2022 Version 17.1 und höher integriert.
Visual Studio 2022 vor Version 17.1: Installieren Sie die Single-project MSIX Packaging Tools for Visual Studio 2022 VSIX extension.
Um zu bestätigen, dass die Erweiterung installiert ist, klicken Sie auf Extensions>Manage Extensions>Installed>All und überprüfen Sie, ob Single-project MSIX Packaging Tools aufgeführt ist.
Neues Projekt erstellen
Wenn Sie Windows App SDK 1.0 Preview 2 oder höher verwenden, können Sie einfach die Vorlage Blank App, Paket (WinUI in Desktop) verwenden, um eine neue WinUI-basierte App zu erstellen, die die Einzelprojekt-MSIX-Unterstützung umfasst. Weitere Informationen finden Sie unter Create your first WinUI project.
Vorhandenes Projekt ändern
Führen Sie die Schritte in diesem Abschnitt aus, um eine vorhandene WinUI-basierte App zu ändern, die ein separates Verpackungsprojekt verwendet. Die Schritte umfassen das Verschieben des Paketmanifests (und anderer notwendiger Unterstützung für das Erstellen eines MSIX-Pakets) in das Anwendungsprojekt und das anschließende Entfernen des separaten Verpackungsprojekts.
Schritt 1: Erstellen oder Öffnen eines vorhandenen Verpackungsprojekts
Wenn Sie bereits über eine Lösung für eine WinUI-Desktop-App verfügen (siehe WinUI-Vorlagen in Visual Studio), die ein Windows-Anwendungspaketprojekt enthält (siehe Richten Sie Ihre Desktop-Anwendung für MSIX-Paketierung in Visual Studio ein), öffnen Sie diese Lösung jetzt in Visual Studio.
Falls nicht, erstellen Sie eine neue WinUI-Desktop-App in Visual Studio mithilfe der Vorlage Blank-App, verpackt mit Windows Application Packaging Project (WinUI in Desktop)vorlage. Ihre Lösung sieht ähnlich wie der nachstehende Screenshot aus.
Schritt 2: Bearbeiten der Anwendung Projekteinstellungen
Bearbeiten Sie als Nächstes eine Konfigurationseinstellung, um das MSIX-Feature mit einem einzelnen Projekt zu verwenden. Je nach project Typ und Visual Studio Version gibt es unterschiedliche Anweisungen.
Doppelklicken Sie in Solution Explorer auf den project Knoten für Ihre Anwendung, um die Datei .csproj im XML-Editor zu öffnen. Fügen Sie dem Hauptelement <PropertyGroup> die folgende XML-Datei hinzu.
<EnableMsixTooling>true</EnableMsixTooling> <PublishProfile>Properties\PublishProfiles\win10-$(Platform).pubxml</PublishProfile>Wenn Sie fertig sind, sollte das <PropertyGroup>-Element ungefähr wie dieses aussehen.
<Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <OutputType>WinExe</OutputType> <TargetFramework>net8.0-windows10.0.19041.0</TargetFramework> ... <UseWinUI>true</UseWinUI> <EnableMsixTooling>true</EnableMsixTooling> <PublishProfile>Properties\PublishProfiles\win10-$(Platform).pubxml</PublishProfile> </PropertyGroup>Speichern Sie Ihre Änderungen und schließen Sie die .csproj-Datei.
Führen Sie je nach Ihrer Version von Visual Studio eine der folgenden Verfahren aus.
Zu Visual Studio 2022 oder höher:
Klicken Sie in Solution Explorer mit der rechten Maustaste auf den Ordner Properties unter dem Knoten project Ihrer Anwendung, und wählen Sie Add>Neues Element aus... .
Wählen Sie Textdatei aus, benennen Sie die neue Datei launchSettings.json und klicken Sie auf Hinzufügen. Stellen Sie sicher, dass sich die neue Datei im Ordner Properties Ihrer Anwendung project befindet.
Kopieren Sie die folgenden Einstellungen in die neue Datei. Sie können die Werte nach Bedarf für Ihr Szenario ändern. Der Wert MyApp kann eine beliebige Zeichenkette sein. Er muss nicht mit dem Namen Ihrer Anwendung übereinstimmen.
{ "profiles": { "MyApp": { "commandName": "MsixPackage", "commandLineArgs": "", /* Command line arguments to pass to the app. */ "alwaysReinstallApp": false, /* Uninstall and then reinstall the app. All information about the app state is deleted. */ "remoteDebugEnabled": false, /* Indicates that the debugger should attach to a process on a remote machine. */ "allowLocalNetworkLoopbackProperty": true, /* Allow the app to make network calls to the device it is installed on. */ "authenticationMode": "Windows", /* The authentication scheme to use when connecting to the remote machine. */ "doNotLaunchApp": false, /* Do not launch the app, but debug my code when it starts. */ "remoteDebugMachine": "", /* The name of the remote machine. */ "nativeDebugging": false /* Enable debugging for managed and native code together, also known as mixed-mode debugging. */ } } }Speichern und schließen Sie die Datei launchSettings.json.
Schritt 3: Verschieben von Dateien in das Anwendungsprojekt
Verschieben Sie als Nächstes mehrere wichtige Dateien in das Anwendungsprojekt. Je nach project Typ gibt es unterschiedliche Anweisungen.
- Verschieben Sie in File Explorer die Datei Package.appxmanifest und den Ordner Images von Ihrem Verpackungsprojekt in Ihr Anwendungsprojekt. Platzieren Sie diese Datei und diesen Ordner in der obersten Ebene der Ordnerhierarchie der Anwendung project.
- Wählen Sie in Visual Studio im Solution Explorer mehrere Bilder im Ordner Images aus. Setzen Sie im Fenster Eigenschaften die Build-Aktion auf Inhalt.
- Entfernen Sie das Verpackungsprojekt aus Ihrer Lösung.
Schritt 4: Aktivieren der Bereitstellung in Configuration Manager
- Wählen Sie Build>Configuration Manager aus.
- Klicken Sie in Configuration Manager auf das Kontrollkästchen Deploy für jede Kombination aus Konfiguration und Plattform (z. B. Debug und x86, Debug und arm64, Release und x64 und mehr).
Hinweis
Stellen Sie sicher, dass Sie oben die Dropdownlisten Aktive Projektmappenkonfiguration und Aktive Projektmappenplattform anstelle der Dropdownlisten Konfiguration und Plattform in derselben Zeile wie das Kontrollkästchen Bereitstellen verwenden.
Schritt 5: Bereitstellen Ihrer App
Erstellen und bereitstellen Sie Ihr Anwendungsprojekt. Visual Studio wird Ihre Anwendung zu einem MSIX-Paket erstellen, das Paket installieren und dann Ihre Anwendung ausführen.
Schritt 6: Verpacken der App für die Veröffentlichung
Verwenden Sie den Befehl
Automatisierung des Erstellens und Verpackens Ihrer Single-Project MSIX-App
Sie können msbuild verwenden, um Ihre Einzelprojekt-MSIX-App zu erstellen und zu verpacken, wodurch Sie den Workflow automatisieren können. Die Technik für eine Ein-Projekt-Lösung und die Kommandozeile unterscheidet sich nur geringfügig von dem, was Sie möglicherweise bereits tun, wenn Sie über eine Zwei-Projekt-Lösung verfügen – eine Lösung mit einem Windows Application Packaging Project (siehe Set up your desktop application for MSIX packaging in Visual Studio).
Die wichtige Build-Option für eine Einzelprojektlösung ist /p:GenerateAppxPackageOnBuild=true. Ohne diese Option wird das Projekt gebaut, aber Sie erhalten kein MSIX-Paket. Wenn Sie diese Option einschließen, wird das MSIX-Paket generiert.
Es gibt ein vollständiges Beispiel in Form von eine GitHub Action, die eine WinUI-Einzelprojekt-Lösung erstellt.
Hinweis
Single-project MSIX unterstützt derzeit nicht die Erstellung von MSIX-Paketen (siehe Bundling MSIX-Pakete). Es erzeugt nur einen einzigen MSIX. Sie können jedoch .msix-Dateien mithilfe des MSIX Bundler GitHub Action in ein MSIX-Bündel bündeln.
Wie eine gepackte Desktop-App unter Windows ausgeführt wird
Ausführlichere Informationen dazu, was mit Dateien und Registrierungseinträgen passiert, wenn Sie ein Windows app Paket für Ihre Desktopanwendung erstellen, finden Sie unter Understanding how packaged desktop apps run on Windows.
Feedback geben
Um uns Ihr Feedback zu senden, Probleme zu melden oder Fragen zum Single-project MSIX-Feature zu stellen, posten Sie eine Diskussion oder ein Problem im Repository Windows App SDK GitHub.
Windows developer