Usar el SDK de MSIX para distribuir un paquete MSIX en las plataformas que no sean Windows 10

El SDK MSIX ofrece a los desarrolladores una manera universal para distribuir el contenido del paquete en los dispositivos de cliente independientemente de la plataforma del sistema operativo en el dispositivo cliente. Esto permite a los desarrolladores empaquetar su contenido de la aplicación una vez en lugar de tener al paquete para cada plataforma.

Para aprovechar las ventajas del MSIX SDK y la capacidad de distribuir el contenido del paquete para varias plataformas, se proporciona una manera para especificar las plataformas de destino donde desea que los paquetes a la que extraer. Esto significa que puede asegurarse de que el contenido del paquete se extraen del paquete solo según estime oportuno.

La siguiente tabla muestra las familias de dispositivos de destino para declarar en el manifiesto.

Plataforma Familia Familia de dispositivos de destino Notas
Windows 10 Phone





















Platform.All























Windows.Universal Windows.Mobile Dispositivos móviles
Escritorio Windows.Desktop PC
Xbox Windows.Xbox Consola Xbox
Surface Hub Windows.Team Dispositivos de pantalla de gran tamaño Win 10
HoloLens Windows.Holographic Auriculares VR o AR
IoT Windows.IoT Dispositivos IoT
iOS Phone Apple.Ios.All Apple.Ios.Phone iPhone, Touch
Tablet Apple.Ios.Tablet iPad mini, iPad, iPad Pro
TV Apple.Ios.TV Apple TV
Ver Apple.Ios.Watch iWatch
MacOS Escritorio Apple.MacOS.All MacBook Pro, MacBook Air, Mac Mini, iMac
Android Phone Google.Android.All Google.Android.Phone Dispositivos móviles que tienen como destino cualquier variante de Android
Tablet Google.Android.Tablet Tabletas Android
Escritorio Google.Android.Desktop Chromebooks
TV Google.Android.TV Dispositivos Android de pantalla de gran tamaño
Ver Google.Android.Watch Dispositivos de engranaje de Google
Windows 7 Windows7.Desktop Dispositivos Windows 7
8 Windows8.Desktop Dispositivos Windows 8/8.1
Web Microsoft Web.All Web.Edge.All Aplicaciones de motor Edge web
Android Web.Blink.All Aplicaciones web de motor de intermitencia
Chrome Web.Chromium.All Aplicaciones de motor de Chrome web
iOS Web.Webkit.All Aplicaciones de motor de WebKit web
MacOS Web.Safari.All Aplicaciones de motor de web de Safari
Linux Any/All Linux.All Todas las distribuciones de Linux

En el archivo de manifiesto del paquete de aplicación, deberá incluir la familia de dispositivos de destino apropiado si le gusta el contenido del paquete que solo deben extraerse en dispositivos y plataformas específicas. Si le gusta el bulid el paquete de tal manera que es compatible con todos los tipos de plataforma y dispositivo, elija Platform.All como la familia de dispositivos de destino. De forma similar, si le gusta el paquete que solo se admite en aplicaciones web, elija Web.All.

Archivo de manifiesto (AppxManifest.xml) de ejemplo

<?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ón de plataforma

En el anterior ejemplo archivo de manifiesto junto con el nombre de la plataforma, también hay parámetros para especificar el MinVersion y MaxVersionTested estos parámetros se utilizan en las plataformas Windows 10. En Windows 10, solo se implementarán en las versiones de sistema operativo de Windows 10 mayores que el MinVersion el paquete. En otras plataformas que no sean Windows 10, no se usan los parámetros MinVersion y MaxVersionTested para efectuar la declaración si va a extraer el contenido del paquete.

Si desea usar el paquete para todas las plataformas (Windows 10 y que no sean Windows 10), se recomienda que use los parámetros de MinVersion y MaxVersionTested para especificar las versiones de sistema operativo Windows 10 donde desea que la aplicación funcione. Por lo que el manifiesto dependencias sección tendría el aspecto siguiente:

  <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 y MaxVersionTested son campos obligatorios en el manifiesto y que necesitan para cumplir el notation(#.#.#.#) cuádruplo. Si solo usa el SDK de empaquetado MSIX para solo las plataformas que no sean Windows 10, simplemente puede usar '0.0.0.0' como el MinVersion y MaxVersionTested como las versiones.

Cómo utilizar el mismo paquete de forma efectiva en todas las plataformas (Windows 10 y que no sean Windows 10)

Para aprovechar al máximo el SDK de empaquetado MSIX, deberá crear el paquete de forma que se va a implementar como un paquete de aplicación de Windows 10, al mismo tiempo que se admite en otras plataformas. En Windows 10, puede crear el paquete como un extensión de la aplicación. Para obtener más información acerca de las extensiones de aplicación y cómo puede ayudar a mejorar su aplicación extensible, consulte el Introducción a las extensiones de aplicación entrada de blog.

En el ejemplo de archivo de manifiesto que se muestra anteriormente en este artículo, observará una propiedades elemento dentro de la AppExtension elemento. No hay ninguna validación realizada en esta sección del archivo de manifiesto. Esto permite a los desarrolladores especificar los metadatos necesarios entre la aplicación host/cliente y la extensión.