Verwenden des MSIX SDK zum Verteilen eines MSIX-Pakets auf nicht Windows 10 Plattformen

Das MSIX SDK bietet Entwicklern eine universelle Möglichkeit, Paketinhalte unabhängig von der Betriebssystemplattform auf dem Clientgerät an Clientgeräte zu verteilen. Dadurch können Entwickler ihre App-Inhalte einmal packen, anstatt sie für jede Plattform packen zu müssen.

Um das MSIX SDK und die Möglichkeit zu nutzen, Ihre Paketinhalte auf mehrere Plattformen zu verteilen, bieten wir eine Möglichkeit, die Zielplattformen anzugeben, auf denen Ihre Pakete extrahiert werden. Dies bedeutet, dass Sie sicherstellen können, dass der Paketinhalt nur wie gewünscht aus dem Paket extrahiert wird.

Die folgende Tabelle zeigt die Zielgerätefamilien, die im Manifest deklariert werden.

Plattform Familie Zielgerätefamilie Hinweise
Windows 10 Phone





















Platform.All























Windows. Universal Windows. Mobil Mobile Geräte
Desktop Windows. Desktop PC
Xbox Windows. Xbox Xbox-Konsole
Surface Hub Windows. Team Große Win 10-Geräte
HoloLens Windows. Holographische VR/AR-Headset
IoT Windows. Iot IoT-Geräte
iOS Phone Apple.Ios.All Apple.Ios. Telefon iPhone, Touch
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 Phone Google.Android.All Google.Android. Telefon Mobile Geräte für beliebige Android-Varianten
Tablet Google.Android.Tablet Android-Tablets
Desktop Google.Android.Desktop Chromebooks
TV Google.Android.TV Android-Geräte mit großen Bildschirmen
Überwachen Google.Android.Watch Google-Zahnradgerä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-Web-Engine-Apps
Android Web.Blink.All Blink-Web-Engine-Apps
Chrome Web. Chromium. Alle Chrome-Web-Engine-Apps
iOS Web.Webkit.All Webkit-Web-Engine-Apps
MacOS Web.Safari.All Safari-Web-Engine-Apps
Linux Beliebige/Alle Linux.All Alle Linux-Distributionen

In die Manifestdatei des App-Pakets müssen Sie die entsprechende Zielgerätefamilie integrieren, 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 das Paket nur in Web-Apps unterstützt werden soll, wählen Sie auf ähnliche Weise 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 sind neben dem Plattformnamen auch Parameter zum Angeben von MinVersion und MaxVersionTested enthalten. Diese Parameter werden auf Windows 10 verwendet. Auf Windows 10 wird das Paket nur auf Betriebssystemversionen bereitgestellt Windows 10 die größer als MinVersion sind. Auf anderen Nicht-Windows 10-Plattformen werden die Parameter MinVersion und MaxVersionTested nicht verwendet, um die Deklaration zu treffen, ob der Paketinhalt extrahiert werden soll.

Wenn Sie das Paket für alle Plattformen (Windows 10 und nicht Windows 10) verwenden möchten, empfiehlt es sich, 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 sieht also wie im folgenden Ausschnitt aus:

  <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 undMaxVersionTested sind erforderliche Felder im Manifest und müssen der Quad-Notation (#.#.#.#) entsprechen. Wenn Sie das MSIX Packaging SDK nur für Nicht-Windows 10-Plattformen verwenden, können Sie einfach "0.0.0.0" als MinVersion und MaxVersionTested als Versionen verwenden.

Effektive Verwendung desselben Pakets auf allen Plattformen (Windows 10 und Windows 10)

Um das MSIX Packaging SDK zu nutzen, müssen Sie das Paket so erstellen, dass es wie ein App-Paket auf Windows 10 bereitgestellt 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 deren Unterstützung bei der Erweiterbarkeit Ihrer App finden Sie im Blogbeitrag Introduction to App Extensions (Einführung in App-Erweiterungen).

Im beispiel der Manifestdatei, das weiter oben in diesem Artikel gezeigt wurde, sehen Sie ein Properties-Element innerhalb des AppExtension-Elements . In diesem Abschnitt der Manifestdatei wird keine Validierung durchgeführt. Dadurch können Entwickler die erforderlichen Metadaten zwischen der Erweiterung und der Host-/Client-App angeben.