Verteilen eines MSIX-Pakets auf Plattformen ohne Windows 10 mithilfe des MSIX SDK

Das MSIX SDK bietet Developern eine universelle Möglichkeit, Paketinhalte unabhängig von der Betriebssystemplattform auf dem Clientgerät zu verteilen. Auf diese Weise müssen Developer ihre App-Inhalte nur einmal verpacken, anstatt sie für jede Plattform verpacken zu müssen.

Um das MSIX SDK und die Möglichkeit, Ihre Paketinhalte auf mehrere Plattformen zu verteilen, bieten wir eine Möglichkeit, die Zielplattformen anzugeben, in die Ihre Pakete entpackt werden sollen. Dies bedeutet, dass Sie sicherstellen können, dass der Paketinhalt nur nach Wunsch aus dem Paket extrahiert wird.

In der folgenden Tabelle sind die Zielgerätefamilien aufgeführt, die im Manifest angegeben werden sollen.

Plattform Familie Zielgerätefamilie Hinweise
Windows 10 Telefon





















Platform.All























Windows.Universal Windows.Mobile Mobile Geräte
Desktop Windows.Desktop PC
Xbox Windows.Xbox Xbox-Konsole
Surface Hub Windows.Team Win 10-Geräte mit großem Bildschirm
HoloLens Windows.Holographic VR/AR Headset
IoT Windows.IoT IoT-Geräte
iOS Telefon Apple.Ios.All Apple.Ios. Telefon iPhone, Toucheingabe
Tablet Apple.Ios.Tablet iPad mini, iPad, iPad Pro
TV Apple.Ios.TV Apple TV
Überwachen Apple.Ios.Watch iWatch
MacOS Desktop Apple.MacOS.All MacBook Pro, MacBook Air, Mac Mini, iMac
Android Telefon Google.Android.All Google.Android.Phone Mobile Geräte, die auf einen jeglichen Android-Geschmack abzielen
Tablet Google.Android.Tablet Android-Tablets
Desktop Google.Android.Desktop Chromebooks
TV Google.Android.TV Android-Geräte mit großem Bildschirm
Überwachen Google.Android.Watch Google Gear-Geräte
Windows 7 Windows7.Desktop Windows 7-Geräte
8 Windows8.Desktop Windows 8/8.1-Geräte
Web Microsoft Web.All Web.Edge.All Edge-Webmodul-Apps
Android Web.Blink.All Blink-Webmodul-Apps
Chrome Web.Chromium.All Chrome Web Engine-Apps
iOS Web.Webkit.All Webkit-Webmodul-Apps
MacOS Web.Safari.All Safari-Webmodul-Apps
Linux Any/All Linux.All Alle Linux-Verteilungen

In der App-Paketmanifestdatei müssen Sie die entsprechende Zielgerätefamilie einschließen, wenn der Paketinhalt nur auf bestimmten Plattformen und Geräten extrahiert werden soll. Wenn Ihnen das Paket so gefällt, dass es auf allen Plattform- und Gerätetypen unterstützt wird, wählen Sie Platform.All als Zielgerätefamilie aus. Wenn Sie möchten, dass das Paket nur in Web-Apps unterstützt wird, wählen Sie Web.All aus.

Beispielmanifestdatei (AppxManifest.xml)

<?xml version="1.0" encoding="utf-8"?>
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
         xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
         xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
         xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
         IgnorableNamespaces="mp uap uap3">

  <Identity Name="BestAppExtension"
            Publisher="CN=awesomepublisher"
            Version="1.0.0.0" />

  <mp:PhoneIdentity PhoneProductId="56a6ecda-c215-4864-b097-447edd1f49fe" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>

  <Properties>
    <DisplayName>Best App Extension</DisplayName>
    <PublisherDisplayName>Awesome Publisher</PublisherDisplayName>
    <Description>This is an extension package to my app</Description>
    <Logo>Assets\StoreLogo.png</Logo>
  </Properties>

  <Resources>
    <Resource Language="x-generate"/>
  </Resources>

  <Dependencies>
    <TargetDeviceFamily Name="Platform.All" MinVersion="0.0.0.0" MaxVersionTested="0.0.0.0"/>
  </Dependencies>

  <Applications>
    <Application Id="App">
      <uap:VisualElements
          DisplayName="Best App Extension"
          Description="This is the best app extension"
          BackgroundColor="white"
          Square150x150Logo="images\squareTile-sdk.png"
          Square44x44Logo="images\smallTile-sdk.png"
          AppListEntry="none">
      </uap:VisualElements>

      <Extensions>
        <uap3:Extension Category="Windows.appExtension">
          <uap3:AppExtension Name="add-in-contract" Id="add-in" PublicFolder="Public" DisplayName="Sample Add-in" Description="This is a sample add-in">
            <uap3:Properties>
               <!--Free form space-->
            </uap3:Properties>
          </uap3:AppExtension>
        </uap3:Extension>
      </Extensions>

    </Application>
  </Applications>
</Package>

Plattformversion

In der obigen Beispielmanifestdatei zusammen mit dem Plattformnamen gibt es auch Parameter, um die MinVersion und MaxVersionTested auf Windows 10-Plattformen anzugeben. Unter Windows 10 wird das Paket nur unter Windows 10-Betriebssystemversionen bereitgestellt, die größer als die MinVersion sind. Auf anderen Nicht-Windows 10-Plattformen werden die Parameter MinVersion und MaxVersionTested nicht verwendet, um die Deklaration darüber zu erstellen, ob der Paketinhalt extrahiert werden soll.

Wenn Sie das Paket für alle Plattformen (Windows 10 und Nicht-Windows 10) verwenden möchten, empfehlen wir, die Parameter MinVersion und MaxVersionTested zu verwenden, um die Windows 10-Betriebssystemversionen anzugeben, in denen Ihre App funktionieren soll. Der Abschnitt Abhängigkeiten Ihres Manifests würde also wie folgt aussehen:

  <Dependencies>
    <TargetDeviceFamily Name="Platform.All" MinVersion="0.0.0.0" MaxVersionTested="0.0.0.0"/>
    <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.14393.0" MaxVersionTested="10.0.16294.0"/>
  </Dependencies>

MinVersion und MaxVersionTested sind Pflichtfelder im Manifest und müssen der Quadnotation(#.#.#.#) entsprechen. Wenn Sie nur das MSIX-Verpackungs-SDK nur für Nicht-Windows 10-Plattformen verwenden, können Sie einfach „0.0.0.0“ als MinVersion und MaxVersionTested als Versionen verwenden.

Hilfe & Anleitung um dasselbe Paket auf allen Plattformen zu verwenden (Windows 10 und Nicht-Windows 10)

Um das MSIX Packaging SDK optimal zu nutzen, müssen Sie das Paket auf eine Weise erstellen, die wie ein App-Paket unter Windows 10 bereitgestellt ist und gleichzeitig auf anderen Plattformen unterstützt wird. Auf Windows 10 können Sie das Paket als App-Erweiterung erstellen. Weitere Informationen zu App-Erweiterungen und dazu, wie diese Ihre App erweiterbar machen können, finden Sie im Blogbeitrag Einführung in App-Erweiterungen.

Im Weiter oben in diesem Artikel gezeigten Manifestdateibeispiel werden Sie ein Properties-Element innerhalb des AppExtension-Elements bemerken. In diesem Abschnitt der Manifestdatei wird keine Validierung ausgeführt. Auf diese Weise können Developer die erforderlichen Metadaten zwischen Erweiterung und Host-/Client-App angeben.