Gunakan MSIX SDK untuk mendistribusikan paket MSIX pada platform non-Windows 10

MSIX SDK menawarkan cara universal kepada pengembang untuk mendistribusikan konten paket ke perangkat klien terlepas dari platform OS pada perangkat klien. Ini memungkinkan pengembang untuk mengemas konten aplikasi mereka sekali alih-alih harus mengemas untuk setiap platform.

Untuk memanfaatkan MSIX SDK dan kemampuan untuk mendistribusikan konten paket Anda ke beberapa platform, kami menyediakan cara untuk menentukan platform target tempat Anda ingin mengekstrak paket Anda. Ini berarti Anda dapat memastikan bahwa konten paket sedang diekstraksi dari paket hanya sesuai keinginan Anda.

Tabel berikut ini memperlihatkan keluarga perangkat target untuk dideklarasikan dalam manifes.

Platform Keluarga Keluarga Perangkat Target Catatan
Windows 10 Telepon





















Platform.All























Windows.Universal Windows.Mobile Perangkat seluler
Desktop Windows.Desktop PC
Xbox Windows.Xbox Konsol Xbox
Surface Hub Windows.Team Perangkat Win 10 layar besar
HoloLens Windows.Holographic Headset VR/AR
IoT Windows.IoT Perangkat IoT
iOS Telepon Apple.Ios.All Apple.Ios. Telepon i Telepon, Touch
Tablet Apple.Ios.Tablet iPad mini, iPad, iPad Pro
TV Apple.Ios.TV Apple TV
Menonton Apple.Ios.Watch iWatch
MacOS Desktop Apple.MacOS.All MacBook Pro, MacBook Air, Mac Mini, iMac
Android Telepon Google.Android.All Google.Android. Telepon Perangkat seluler yang menargetkan rasa Android apa pun
Tablet Google.Android.Tablet Tablet Android
Desktop Google.Android.Desktop Chromebook
TV Google.Android.TV Perangkat layar besar Android
Menonton Google.Android.Watch Perangkat Google gear
Jendela 7 Windows7.Desktop Perangkat Windows 7
8 Windows8.Desktop Perangkat Windows 8/8.1
Web Microsoft Web.All Web.Edge.All Aplikasi mesin web Edge
Android Web.Blink.All Aplikasi mesin web Blink
Chrome Web.Chromium.All Aplikasi mesin web Chrome
iOS Web.Webkit.All Aplikasi mesin web Webkit
MacOS Web.Safari.All Aplikasi mesin web Safari
Linux Semua/Semua Linux.All Semua distribusi Linux

Dalam file manifes paket aplikasi, Anda harus menyertakan keluarga perangkat target yang sesuai jika Anda ingin konten paket hanya diekstraksi pada platform dan perangkat tertentu. Jika Anda menyukai paket bulid sewaktu-waktu sehingga didukung pada semua jenis platform dan perangkat, pilih Platform.All sebagai keluarga perangkat target. Demikian pula, jika Anda ingin paket hanya didukung di aplikasi web, pilih Web.All.

Contoh file manifes (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>

Versi platform

Dalam file manifes sampel di atas, bersama dengan nama platform, ada juga parameter untuk menentukan parameter MinVersion dan MaxVersionTested Parameter ini digunakan pada platform Windows 10. Pada Windows 10, paket hanya akan disebarkan pada versi OS Windows 10 yang lebih besar dari MinVersion. Pada platform non-Windows 10 lainnya, parameter MinVersion dan MaxVersionTested tidak digunakan untuk membuat deklarasi apakah akan mengekstrak konten paket.

Jika Anda ingin menggunakan paket untuk semua platform (Windows 10 dan non-Windows 10), kami sarankan Anda menggunakan parameter MinVersion dan MaxVersionTested untuk menentukan Versi OS Windows 10 tempat Anda ingin aplikasi Anda bekerja. Jadi bagian Dependensi manifes Anda akan terlihat seperti ini:

  <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 dan MaxVersionTested adalah bidang yang diperlukan dalam manifes dan perlu menyesuaikan notasi quad(#.#.#.##). Jika Anda hanya menggunakan SDK kemasan MSIX hanya untuk platform non-Windows 10, Anda cukup menggunakan '0.0.0.0' sebagai MinVersion dan MaxVersionTested sebagai versi.

Cara menggunakan paket yang sama secara efektif pada semua platform (Windows 10 dan non-Windows 10)

Untuk memaksimalkan MSIX Packaging SDK, Anda harus membangun paket dengan cara yang akan disebarkan seperti paket aplikasi di Windows 10 dan pada saat yang sama didukung pada platform lain. Di Windows 10, Anda dapat membangun paket sebagai Ekstensi Aplikasi. Untuk informasi selengkapnya tentang Ekstensi Aplikasi dan bagaimana ekstensi tersebut dapat membantu membuat aplikasi Anda dapat diperluas, lihat posting blog Pengenalan Ekstensi Aplikasi.

Dalam contoh file manifes yang ditunjukkan sebelumnya dalam artikel ini, Anda akan melihat elemen Properti dalam elemen AppExtension . Tidak ada validasi yang dilakukan di bagian file manifes ini. Hal ini memungkinkan pengembang menentukan metadata yang diperlukan antara ekstensi dan aplikasi host/klien.