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.