Usare il SDK MSIX per distribuire un pacchetto MSIX su piattaforme non Windows 10Use the MSIX SDK to distribute an MSIX package on non-Windows 10 platforms

il SDK MSIX offre agli sviluppatori un modo universale per distribuire il contenuto del pacchetto ai dispositivi client indipendentemente dalla piattaforma del sistema operativo nel dispositivo client.The MSIX SDK offers developers a universal way to distribute package contents to client devices regardless of the OS platform on the client device. Ciò consente agli sviluppatori per creare un pacchetto di contenuto app una volta anziché al pacchetto per ogni piattaforma.This enables developers to package their app content once instead of having to package for each platform.

Per sfruttare i vantaggi del SDK MSIX e la possibilità di distribuire il contenuto del pacchetto per più piattaforme, offriamo un modo per specificare le piattaforme di destinazione in cui si desidera dei pacchetti da estrarre in.To take advantage of the MSIX SDK and the ability to distribute your package contents to multiple platforms, we provide a way to specify the target platforms where you want your packages to extract to. Ciò significa che è possibile assicurarsi che il contenuto del pacchetto viene estratti dal pacchetto solo come desiderato.This means you can ensure that the package contents are being extracted from the package only as you desire.

La tabella seguente mostra le famiglie di dispositivi di destinazione dichiarare nel manifesto.The following table shows the target device families to declare in the manifest.

PiattaformaPlatform FamigliaFamily Famiglia di dispositivi di destinazioneTarget Device Family NoteNotes
Windows 10Windows 10 PhonePhone





















Platform.AllPlatform.All























Windows.UniversalWindows.Universal Windows.MobileWindows.Mobile Dispositivi mobiliMobile devices
DesktopDesktop Windows.DesktopWindows.Desktop PCPC
XboxXbox Windows.XboxWindows.Xbox Console XboxXbox console
Surface HubSurface Hub Windows.TeamWindows.Team Dispositivi Windows 10 di schermi di grandi dimensioniLarge screen Win 10 devices
HoloLensHoloLens Windows.HolographicWindows.Holographic Visore VR VR o ARVR/AR headset
IoTIoT Windows.IoTWindows.IoT Dispositivi IoTIoT devices
iOSiOS PhonePhone Apple.Ios.AllApple.Ios.All Apple.Ios.PhoneApple.Ios.Phone iPhone, toccoiPhone, Touch
TabletTablet Apple.Ios.TabletApple.Ios.Tablet iPad mini, iPad, iPad ProiPad mini, iPad, iPad Pro
TVTV Apple.Ios.TVApple.Ios.TV Apple TVApple TV
VideoWatch Apple.Ios.WatchApple.Ios.Watch iWatchiWatch
MacOSMacOS DesktopDesktop Apple.MacOS.AllApple.MacOS.All MacBook Pro, MacBook Air, Mac Mini, iMacMacBook Pro, MacBook Air, Mac Mini, iMac
AndroidAndroid PhonePhone Google.Android.AllGoogle.Android.All Google.Android.PhoneGoogle.Android.Phone Dispositivi mobili destinate a qualsiasi versione di AndroidMobile devices that target any flavor of Android
TabletTablet Google.Android.TabletGoogle.Android.Tablet Tablet AndroidAndroid tablets
DesktopDesktop Google.Android.DesktopGoogle.Android.Desktop Dispositivi ChromebooksChromebooks
TVTV Google.Android.TVGoogle.Android.TV Dispositivi Android schermi di grandi dimensioniAndroid large screen devices
VideoWatch Google.Android.WatchGoogle.Android.Watch Dispositivi Google a forma di ingranaggioGoogle gear devices
WindowsWindows 77 Windows7.DesktopWindows7.Desktop Dispositivi Windows 7Windows 7 devices
88 Windows8.DesktopWindows8.Desktop Dispositivi Windows 8/8.1Windows 8/8.1 devices
WebWeb MicrosoftMicrosoft Web.AllWeb.All Web.Edge.AllWeb.Edge.All Motore App web di EdgeEdge web engine apps
AndroidAndroid Web.Blink.AllWeb.Blink.All Far lampeggiare App web di motoreBlink web engine apps
ChromeChrome Web.Chromium.AllWeb.Chromium.All Motore delle App web di ChromeChrome web engine apps
iOSiOS Web.Webkit.AllWeb.Webkit.All Motore App web di WebkitWebkit web engine apps
MacOSMacOS Web.Safari.AllWeb.Safari.All Motore App web di SafariSafari web engine apps
LinuxLinux Any/AllAny/All Linux.AllLinux.All Tutte le distribuzioni di LinuxAll Linux distributions

Nel file manifesto del pacchetto di app, è necessario includere il gruppo di dispositivi di destinazione appropriata se si desidera che il contenuto del pacchetto devono essere estratti solo su dispositivi e piattaforme specifiche.In the app package manifest file, you will need to include the appropriate target device family if you like the package contents to be only extracted on specific platforms and devices. Se si desidera che il bulid il pacchetto in modo che sia supportata in tutti i tipi di piattaforma e dispositivo, scegliere Platform.All come il gruppo di dispositivi di destinazione.If you like the bulid the package in such a way that it is supported on all platform and device types, choose Platform.All as the target device family. Analogamente, se si desidera che il pacchetto a essere supportata solo nelle App web, scegliere Web.All.Similarly, if you like the package to be only supported in web apps, choose Web.All.

Esempio di file manifesto (appxmanifest. XML)Sample manifest file (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 piattaformaPlatform version

Nel file manifesto dell'esempio precedente, insieme al nome di piattaforma, sono disponibili anche parametri per specificare il MinVersion e MaxVersionTested questi parametri vengono utilizzati nelle piattaforme Windows 10.In the above sample manifest file, along with the platform name, there are also parameters to specify the MinVersion and MaxVersionTested These parameters are used on Windows 10 platforms. In Windows 10, il pacchetto verrà distribuito solo nelle versioni del sistema operativo di Windows 10 maggiore di MinVersion.On Windows 10, the package will only be deployed on Windows 10 OS versions greater than the MinVersion. In altre piattaforme non Windows 10, i parametri MinVersion e MaxVersionTested non vengono usati per rendere la dichiarazione della possibilità di estrarre i contenuti del pacchetto.On other non-Windows 10 platforms, the MinVersion and MaxVersionTested parameters aren't used to make the declaration of whether to extract the package contents.

Se si vuole usare il pacchetto per tutte le piattaforme (Windows 10 e non Windows 10), è consigliabile utilizzare i parametri MinVersion e MaxVersionTested specificare versioni del sistema operativo Windows 10 in cui si desidera il funzionamento dell'app.If you would like to use the package for all platforms(Windows 10 and non-Windows 10), we recommend that you use the MinVersion and MaxVersionTested parameters to specify the Windows 10 OS Versions where you would like your app to work. Pertanto, il manifesto dipendenze sezione sarà analogo al seguente:So your manifest's Dependencies section would look like this:

  <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 necessitano di conformarsi il quadruplo notation(#.#.#.#).MinVersion and MaxVersionTested are required fields in the manifest and they need to conform the quad notation(#.#.#.#). Se si usa la creazione di pacchetti MSIX SDK solo per solo le piattaforme non Windows 10, è possibile utilizzare '0.0.0.0' come le MinVersion e MaxVersionTested come le versioni.If you are only using the MSIX packaging SDK for only non-Windows 10 platforms, you can simply use '0.0.0.0' as the MinVersion and MaxVersionTested as the versions.

Come utilizzare efficacemente lo stesso pacchetto in tutte le piattaforme (Windows 10 e non Windows 10)How to effectively use the same package on all platforms (Windows 10 and non-Windows 10)

Per sfruttare al meglio il SDK di Packaging MSIX, è necessario compilare il pacchetto in modo che verrà distribuito, ad esempio un pacchetto dell'app in Windows 10 e nello stesso momento è supportato su altre piattaforme.To make the most of the MSIX Packaging SDK, you will need to build the package in a way that will be deployed like an app package on Windows 10 and at the same time supported on other platforms. In Windows 10, è possibile compilare il pacchetto come un estensione dell'App.On Windows 10, you can build the package as an App Extension. Per altre informazioni sulle estensioni App e come usarli per rendere estensibile l'app, vedere la Introduzione alle App estensioni post di blog.For more information about App Extensions and how they can help make your app extensible, see the Introduction to App Extensions blog post.

Nell'esempio di file manifesto illustrato in precedenza in questo articolo, si noterà una delle proprietà elemento all'interno di AppExtension elemento.In the manifest file example shown earlier in this article, you will notice a Properties element within the AppExtension element. Non è prevista alcuna convalida eseguita in questa sezione del file manifesto.There is no validation performed in this section of the manifest file. Ciò consente agli sviluppatori di specificare i metadati necessari tra app di estensione e host/client.This allows developers to specify the required metadata between extension and host/client app.