Optionale Pakete und die Erstellung zugehöriger Sätze

Optionale Pakete enthalten Inhalte, die in ein Hauptpaket integriert werden können. Dies ist nützlich für herunterladbare Inhalte (DLC), das Teilen einer großen App für Größenbeschränkungen oder für den Versand von zusätzlichen Inhalten, die von Ihrer ursprünglichen App getrennt sind. Weitere Informationen zu optionalen Paketen finden Sie im Blogbeitrag: Erweitern Der Anwendung mithilfe optionaler Pakete.

Verwandte Sets sind eine Erweiterung optionaler Pakete. Verwandte Sets ermöglichen es Ihnen, einen strengen Satz von Versionen über Standard und optionale Pakete hinweg zu erzwingen. Verwandte Sets können unterschiedliche Herausgeber von der Standard-App haben, wenn sie außerhalb des Store bereitgestellt wird. Weitere Informationen zu verwandten Sätzen finden Sie im Blogbeitrag: Toolerstellung zum Erstellen eines zugehörigen Satzes.

Optionale Pakete und zugehörige Sätze werden alle innerhalb des MSIX-Containers der Standard App ausgeführt.

Voraussetzungen

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

Informationen zum Abrufen aller neuesten Entwicklungstools finden Sie unter Downloads und Tools für Windows 10.

Hinweis

Um eine App mit optionalen Paketen und/oder verwandten Sätzen an den Microsoft 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.

Codebeispiel

Während Sie diesen Artikel lesen, empfiehlt es sich, das optionale Paketcodebeispiel auf GitHub zusammen mit dem optionalen Paketcodebeispiel zu befolgen, um zu verstehen, wie optionale Pakete und verwandte Sets in Visual Studio funktionieren.

Optionale Pakete

Um ein optionales Paket in Visual Studio zu erstellen, müssen Sie:

  1. Stellen Sie sicher, dass die Min-Version der Zielplattform Ihrer App auf: 10.0.15063.0 oder höher festgelegt ist.
  2. Öffnen Sie in Ihrem Standard Paketprojekt die Package.appxmanifest Datei. Navigieren Sie zur Registerkarte "Verpackung", und notieren Sie sich ihren Paketfamiliennamen, also alles vor dem Zeichen "_".
  3. Klicken Sie im optionalen Paketprojekt mit der rechten Maustaste auf den Package.appxmanifestOpen with > XML (Text)-Editor.
  4. Suche das <Dependencies>-Element in der Datei. Fügen Sie folgendes hinzu, und ersetzen [MainPackageDependency]Sie den Paketfamiliennamen aus Schritt 2. Dadurch wird angegeben, dass Ihr optionales Paket von Ihrem Standard-Paket abhängig ist.
    <uap3:MainPackageDependency Name="[MainPackageDependency]"/>
    

Hinweis

Wenn Sie ein optionales Paket von einem anderen Herausgeber erstellen möchten, müssen Sie den Herausgeber der Standard Anwendung angeben, wenn sie unterschiedlich sind. Wie so <uap4:MainPackageDependency Name="Main_app" Publisher="CN=Contoso..." />. Dies funktioniert nicht, wenn Sie im Store veröffentlichen.

Nachdem Sie die Paketabhängigkeiten von Schritt 1 bis 4 eingerichtet haben, können Sie die Entwicklung wie gewohnt fortsetzen. Weitere Informationen finden Sie im Blogbeitrag: Erstellen Ihres ersten optionalen Pakets.

Visual Studio kann so konfiguriert werden, dass Das Standard-Paket bei jeder Bereitstellung eines optionalen Pakets erneut bereitgestellt wird. Um die Buildabhängigkeit in Visual Studio festzulegen, sollten Sie:

  1. Klicken Sie mit der rechten Maustaste auf das optionale Paketprojekt, und wählen Sie "Projektabhängigkeiten > erstellen" aus...
  2. Überprüfen Sie das Standard Paketprojekt, und wählen Sie "OK" aus.

Jedes Mal, wenn Sie F5 eingeben oder ein optionales Paketprojekt erstellen, erstellt Visual Studio zuerst das Standard Paketprojekt. Dadurch wird sichergestellt, dass Ihr Standard Projekt und optionale Projekte synchronisiert sind.

Ein verwandter Satz besteht aus einem Standard-Paket und einem optionalen Paket, das eng über Metadaten gekoppelt ist, die in der .appxbundle- oder MSIXBUNDLE-Datei des Standard-Pakets angegeben sind. Diese Metadaten verknüpft das Standard Paket mit dem optionalen Paket (mit dem Namen der APPXBUNDLE-Datei + Version) und dem optionalen Paket mit dem Standard-Paket (unter Verwendung des versionsunabhängigen Namens). Visual Studio hilft Ihnen beim Abrufen der richtigen Metadaten in Ihren Dateien.

Die Versionsverwaltung von Paketen in einem verwandten Satz wird so synchronisiert, dass die neueste Version eines Pakets erst verwendet werden kann, wenn alle zugehörigen Satzpakete (angegeben durch Version im Standard-Paket) installiert werden. Pakete werden unabhängig gewartet, aber Pakete, die in der Gruppe angegeben sind, werden möglicherweise erst verwendet, wenn alle Pakete aktualisiert wurden. Weitere Informationen zu verwandten Sätzen finden Sie im Blogbeitrag: Toolerstellung zum Erstellen eines zugehörigen Satzes.

Führen Sie die folgenden Schritte aus, um die Lösung Ihrer App für verwandte Sets zu konfigurieren:

  1. Klicken Sie mit der rechten Maustaste auf das Standard Paketprojekt, wählen Sie "Neues Element hinzufügen>" aus...
  2. Durchsuchen Sie im Fenster die installierten Vorlagen nach ".txt", und fügen Sie eine neue Textdatei hinzu.

    Wichtig

    Die neue Textdatei muss benannt werden: Bundle.Mapping.txt.

  3. Geben Sie in der Bundle.Mapping.txt Datei die Zeichenfolge "[OptionalProjects]" gefolgt von den relativen Pfaden zu Ihren optionalen Paketprojekten ein. Hier ist eine Beispieldatei Bundle.Mapping.txt :
    [OptionalProjects]
    "..\ActivatableOptionalPackage1\ActivatableOptionalPackage1.vcxproj"
    "..\ActivatableOptionalPackage2\ActivatableOptionalPackage2.vcxproj"
    

Wenn Ihre Lösung auf diese Weise konfiguriert ist, erstellt Visual Studio ein Bündelmanifest namens "AppxBundleManifest.xml" für das Standard-Paket mit allen erforderlichen Metadaten für verwandte Mengen.

Beachten Sie, Bundle.Mapping.txt dass eine Datei für verwandte Sets wie optionale Pakete nur unter Windows 10, Version 1703 oder höher, funktioniert. Darüber hinaus sollte die Min-Version der Zielplattform Ihrer App auf 10.0.15063.0 oder höher festgelegt werden.

Entfernen optionaler Pakete

Benutzer können in ihre Einstellungen App wechseln und die optionalen Pakete entfernen. Ebenso können Entwickler die RemoveOptionalPackageAsync verwenden, um eine Liste optionaler Pakete zu entfernen.

PackageCatalog catalog = PackageCatalog.OpenForCurrentPackage();
List<string> optionalList = new List<string>();
optionalList.Add("FabrikamAgeAnalysis_kwpnjs8c36mz0");
    
// Warn user that application will be restarted. 
var result = await catalog.RemoveOptionalPackagesAsync(optionalList);
if (result.ExtendedError != null)
{
    throw removalResult.ExtendedError;
}

Hinweis

Im Falle eines verwandten Satzes muss die Plattform die Standard Anwendung neu starten, um die Entfernung abzuschließen, um Situationen zu vermeiden, in denen die App Inhalte enthält, die aus dem Paket geladen werden, das entfernt wird. Die Apps müssen die Benutzer benachrichtigen, dass die Anwendung neu gestartet werden muss, bevor die App die API aufruft.

Wenn das optionale Paket nur Inhalt ist, sollte der Entwickler der Plattform explizit mitteilen, dass das zu entfernende Paket von der Anwendung nicht verwendet wird, bevor der Entwickler das optionale Paket entfernt. Dadurch kann der Entwickler das Paket auch ohne Neustart entfernen.

Bekannte Probleme

Das Debuggen eines verwandten Set optionalen Projekts wird derzeit in Visual Studio nicht unterstützt. Um dieses Problem zu umgehen, können Sie die Aktivierung (STRG+F5) bereitstellen und starten und den Debugger manuell an einen Prozess anfügen. Um den Debugger anzufügen, wechseln Sie in Visual Studio zum Menü "Debuggen", wählen Sie "An Prozess anfügen..." aus, und fügen Sie den Debugger an den Standard App-Prozess an.