Usare MSIX SDK per distribuire un pacchetto MSIX in piattaforme non Windows 10 client
MSIX SDK offre agli sviluppatori un modo universale per distribuire il contenuto dei pacchetti ai dispositivi client indipendentemente dalla piattaforma del sistema operativo nel dispositivo client. In questo modo gli sviluppatori possono creare un pacchetto del contenuto dell'app una sola volta anziché creare un pacchetto per ogni piattaforma.
Per sfruttare msix SDK e la possibilità di distribuire il contenuto del pacchetto a più piattaforme, è possibile specificare le piattaforme di destinazione in cui si vuole estrarre i pacchetti. Ciò significa che è possibile assicurarsi che il contenuto del pacchetto venga estratto dal pacchetto solo nel modo desiderato.
La tabella seguente illustra le famiglie di dispositivi di destinazione da dichiarare nel manifesto.
Piattaforma | Famiglia | Famiglia di dispositivi di destinazione | Note | ||
---|---|---|---|---|---|
Windows 10 | Telefono | Platform.All |
Windows. Universale | Windows. Mobile | Dispositivi mobili |
Desktop | Windows. Desktop | PC | |||
Xbox | Windows. Xbox | Console Xbox | |||
Surface Hub | Windows. Team | Dispositivi Win 10 a schermo grande | |||
HoloLens | Windows. Olografica | Visore VR/AR | |||
IoT | Windows. Sacco | Dispositivi IoT | |||
iOS | Telefono | Apple.Ios.All | Apple.Ios. Telefono | iPhone, Tocco | |
Tablet | Apple.Ios.Tablet | iPad mini, iPad, iPad Pro | |||
TV | Apple.Ios.TV | Apple TV | |||
Video | Apple.Ios.Watch | iWatch | |||
MacOS | Desktop | Apple.MacOS.All | MacBook Pro, MacBook Air, Mac Mini, iMac | ||
Android | Telefono | Google.Android.All | Google.Android. Telefono | Dispositivi mobili che hanno come destinazione qualsiasi versione di Android | |
Tablet | Google.Android.Tablet | Tablet Android | |||
Desktop | Google.Android.Desktop | Chromebook | |||
TV | Google.Android.TV | Dispositivi Android con schermo di grandi dimensioni | |||
Video | Google.Android.Watch | Dispositivi Google Gear | |||
Windows | 7 | Windows7.Desktop | Windows 7 dispositivi | ||
8 | Windows8.Desktop | Windows 8/8.1 | |||
Web | Microsoft | Web.All | Web.Edge.All | App del motore Web Edge | |
Android | Web.Blink.All | App del motore Web Blink | |||
Chrome | Web. Chromium. Tutti | App del motore Web Chrome | |||
iOS | Web.Webkit.All | App del motore Web di Webkit | |||
MacOS | Web.Safari.All | App del motore Web Safari | |||
Linux | Tutto | Linux.All | Tutte le distribuzioni linux |
Nel file manifesto del pacchetto dell'app è necessario includere la famiglia di dispositivi di destinazione appropriata se si desidera che il contenuto del pacchetto sia estratto solo in piattaforme e dispositivi specifici. Se si desidera che il pacchetto sia supportato in tutti i tipi di piattaforma e dispositivo, scegliere Platform.All come famiglia di dispositivi di destinazione. Analogamente, se si desidera che il pacchetto sia supportato solo nelle app Web, scegliere Web.All.
File manifesto di esempio (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>
Versione della piattaforma
Nel file manifesto di esempio precedente, insieme al nome della piattaforma, sono presenti anche parametri per specificare MinVersion e MaxVersionTested Questi parametri vengono usati nelle piattaforme Windows 10. In Windows 10, il pacchetto verrà distribuito solo in Windows 10 versioni del sistema operativo maggiori di MinVersion. In altre piattaforme non Windows 10, i parametri MinVersion e MaxVersionTested non vengono usati per rendere la dichiarazione di se estrarre il contenuto del pacchetto.
Se si vuole usare il pacchetto per tutte le piattaforme (Windows 10 e non Windows 10), è consigliabile usare i parametri MinVersion e MaxVersionTested per specificare le versioni del sistema operativo Windows 10 in cui si vuole che l'app funzioni. La sezione Dipendenze del manifesto sarà quindi simile alla seguente:
<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 e MaxVersionTested sono campi obbligatori nel manifesto e devono essere conformi alla notazione quad(#.#.#.#). Se si usa MSIX Packaging SDK solo per piattaforme non Windows 10, è sufficiente usare '0.0.0.0.0' come MinVersion e MaxVersionTested come versioni.
Come usare in modo efficace lo stesso pacchetto in tutte le piattaforme (Windows 10 e non Windows 10)
Per ottenere il massimo da MSIX Packaging SDK, è necessario compilare il pacchetto in modo che verrà distribuito come un pacchetto di app in Windows 10 e contemporaneamente supportato in altre piattaforme. In Windows 10, è possibile compilare il pacchetto come estensione dell'app. Per altre informazioni sulle estensioni app e su come possono rendere estensibile l'app, vedere il post di blog Introduzione alle estensioni di app.
Nell'esempio di file manifesto illustrato in precedenza in questo articolo si noterà un elemento Properties all'interno dell'elemento AppExtension . In questa sezione del file manifesto non viene eseguita alcuna convalida. Ciò consente agli sviluppatori di specificare i metadati necessari tra l'estensione e l'app host/client.