Optionale Pakete mit ausführbarem Code

Optionale Pakete mit ausführbarem Code sind nützlich, um eine große oder komplexe Anwendung aufzuteilen oder um eine bereits veröffentlichte Anwendung zu erweitern. Mit Visual Studio 2017, Version 15.7 und .NET Native 2.1 kannst du ausführbaren Code aus optionalen C++- und C#-Paketen laden.

Voraussetzungen

  • Visual Studio 2019 oder Visual Studio 2017 (Version 15.7 oder höher)
  • Windows 10, Version 1709 oder höher
  • Windows 10, Version 1709 SDK oder höher

Die neuesten Entwicklungstools finden Sie unter Downloads und Tools für Windows 10.

Hinweis

Um eine App mit optionalen Paketen und/oder zugehörigen Sätzen an den Store zu übermitteln, benötigen Sie die Berechtigung. Optionale Pakete und zugehörige Sätze können für Branchen-Apps (Line of Business, LOB) oder Enterprise-Apps ohne Partner Center-Berechtigung verwendet werden, wenn sie nicht an den Store übermittelt werden. Wenden Sie sich an den Windows-Developer Support, um die Berechtigung zum Übermitteln einer App zu erhalten, die optionale Pakete und zugehörige Sätze verwendet.

Hinweis

Optionale Pakete, die ausführbaren Code enthalten, müssen Teil eines zugehörigen Satzes sein. Sie können Code nicht aus einem optionalen Paket ausführen, es sei denn, er ist Teil eines zugehörigen Satzes.

C++-Optionale Pakete mit ausführbarem Code

Um Code aus einem optionalen C++-Paket zu laden, siehe das OptionalPackageSample-Repository auf GitHub. Die OptionalPackageDLL zeigt, wie Sie ein Projekt mit Code erstellen, der aus dem Standard-Paket ausgeführt werden kann. Das Projekt MyMainApp zeigt, wie das Laden von Code aus der Datei OptionalPackageDLL.dll funktioniert.

C#-Optionale Pakete mit ausführbarem Code

Um mit der Erstellung eines optionalen Codepakets in C# zu beginnen, führen Sie die folgenden Schritte zur Konfiguration Ihrer Lösung aus:

  1. Erstellen Sie eine neue UWP-Anwendung, deren Mindestversion auf das Windows 10 Fall Creators Update SDK (Build 16299) oder höher festgelegt ist.

  2. Fügen Sie ein neues Optionales Codepaket (Universal Windows) Projekt zur Lösung hinzu. Stellen Sie sicher, dass die Mindestversion und die Zielversion mit der Ihrer Haupt-App übereinstimmen.

  3. Wenn Sie Beabsichtigen, Ihre Apps an den Store zu übermitteln, klicken Sie mit der rechten Maustaste auf beide Projekte, und wählen Sie Store –> App dem Store zuordnen... aus.

  4. Öffnen Sie die Package.appxmanifest-Datei der Haupt-App, und suchen Sie den Identity Name-Wert. Notieren Sie sich diesen Wert für den nächsten Schritt.

  5. Öffnen Sie die Package.appxmanifest-Datei des optionalen App-Pakets und suchen Sie den uap3:MainAppPackageDependency Name-Wert. Aktualisieren Sie den uap3:MainAppPackageDependency Name-Wert so, dass er dem Identity Name-Wert des Haupt-App-Pakets aus dem vorherigen Schritt entspricht.

    Hier sehen Sie ein Beispiel für das Identity aus der Haupt-App Package.appxmanifest.

    <Identity Name="12345.MainAppProject" Publisher="CN=PublisherName" Version="1.0.0.0" />
    

    Die optionalen uap3:MainPackageDependency-App-Pakete müssen aktualisiert werden, damit sie mit Identity der Haupt-App übereinstimmen.

    <uap3:MainPackageDependency Name="12345.MainAppProjectTest" />
    
  6. Fügen Sie der Standard-App eine Bundle.mapping.txt-Datei hinzu. Führen Sie die Schritte in diesem Abschnitt zugehörige Sätze aus, um einen zugehörigen Satz zu erstellen, der beide Apps enthält.

  7. Erstellen Sie das optionale Paketprojekt und navigieren Sie dann zum Ordner Paket-Referenzen in der Ausgabe des Build unter ..\[PathToOptionalPackageProject]\bin\[architecture]\[configuration]\Reference. Beachten Sie, dass Sie eine beliebige Architektur im Pfad zum Referenzordner auswählen können, da die .winmd-Datei (Schritt 8) architekturunabhängig ist.

  8. Fügen Sie der .winmd-Datei, die sich in diesem Ordner befindet, einen Verweis aus dem Haupt-App-Projekt hinzu. Jedes Mal, wenn Sie die API-Oberfläche im optionalen Paketprojekt ändern, muss diese .winmd-Datei aktualisiert werden. Diese Referenz stellt dem Haupt-App-Projekt die für die Kompilierung erforderlichen Informationen zur Verfügung.

  9. Navigieren Sie im Haupt-App-Projekt zu den Projektbuildeigenschaften und wählen Sie Mit .NET Native Toolchain kompilieren aus. Derzeit wird nur das Debuggen in .NET Native für die optionale Erstellung von Codepaketen in C# unterstützt. Gehen Sie zu den Debug-Eigenschaften des Projekts und wählen Sie Optionale Pakete bereitstellen aus. Dadurch wird sichergestellt, dass beide Pakete synchronisiert sind, wenn Sie das Haupt-App-Projekt bereitstellen.

Nachdem Sie diese Schritte abgeschlossen haben, können Sie dem optionalen Paketprojekt Code hinzufügen, als wäre es ein verwaltetes WinRT-Komponentenprojekt. Um auf den Code im Haupt-App-Projekt zuzugreifen, rufen Sie die öffentlichen Methoden auf, die im optionalen Paketprojekt verfügbar sind.