Optionale Pakete mit ausführbarem Code

Optionale Pakete mit ausführbarem Code sind nützlich zum Teilen einer großen oder komplexen App oder zum Hinzufügen von zu einer App, die bereits veröffentlicht wurde. 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, die optionale Pakete und/oder verwandte Sätze verwendet, an die Store senden zu können, benötigen Sie die Berechtigung . Optionale Pakete und verwandte Sätze können für Branchen- oder Unternehmens-Apps ohne Partner Center-Berechtigung verwendet werden, wenn sie nicht an die Store. Unter Windows Entwicklersupport erhalten Sie die Berechtigung zum Übermitteln einer App, die optionale Pakete und verwandte Sätze verwendet.

Hinweis

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

Optionale C++-Pakete mit ausführbarem Code

Informationen zum Laden von Code aus einem optionalen C++-Paket finden Sie im OptionalPackageSample-Repository auf GitHub. OptionalPackageDLL zeigt, wie Sie ein Projekt mit Code erstellen, der aus dem Hauptpaket ausgeführt werden kann. Das MyMainApp-Projekt veranschaulicht, wie Code aus der OptionalPackageDLL.dll geladen wird.

Optionale C#-Pakete mit ausführbarem Code

Führen Sie die folgenden Schritte aus, um Ihre Lösung zu konfigurieren, um mit dem Erstellen eines optionalen Codepakets in C# zu beginnen:

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

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

  3. Wenn Sie Ihre Apps an die Store übermitteln möchten, klicken Sie mit der rechten Maustaste auf beide Projekte, und wählen Sie Store -> App dem Projekt Store...

  4. Öffnen Sie Package.appxmanifest die 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 Datei des optionalen Package.appxmanifest App-Pakets, und suchen Sie den uap3:MainAppPackageDependency Name Wert. Aktualisieren Sie uap3:MainAppPackageDependency Name den Wert so, Identity Name dass er mit dem Wert des Haupt-App-Pakets aus dem vorherigen Schritt übereinstimmen.

    Im Folgenden finden Sie ein Beispiel für die Identity aus der -Haupt-App. Package.appxmanifest

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

    Das optionale App-Paket muss aktualisiert werden, damit es mit uap3:MainPackageDependency dem der Haupt-App übereinstimmen Identity kann.

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

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

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

  9. Navigieren Sie im Haupt-App-Projekt zu den Projekt build-Eigenschaften, und wählen Sie Mit .NET Native Toolkette kompilieren aus. Derzeit wird nur das Debuggen in .NET Native code package creation in C# (Optionale Codepaketerstellung in C#) unterstützt. Wechseln Sie zu den Projektdebugeigenschaften, 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 zu zugreifen, rufen Sie die öffentlichen Methoden auf, die im optionalen Paketprojekt verfügbar gemacht werden.