Uso del SDK de MSIX para distribuir un paquete MSIX en plataformas que no Windows 10 datos

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

Para aprovechar las ventajas del SDK de MSIX y la capacidad de distribuir el contenido del paquete a varias plataformas, proporcionamos una manera de especificar las plataformas de destino en las que desea que extraigan los paquetes. Esto significa que puede asegurarse de que el contenido del paquete se extrae del paquete solo como desee.

En la tabla siguiente se muestran las familias de dispositivos de destino que se declararán en el manifiesto.

Plataforma Familia Familia de dispositivos de destino Notas
Windows 10 Teléfono





















Platform.All























Windows. Universal Windows. Móvil Dispositivos móviles
Escritorio Windows. Escritorio PC
Xbox Windows. Xbox Consola Xbox
Surface Hub Windows. Equipo Dispositivos Win 10 de pantalla grande
HoloLens Windows. Holográfica Casco vr/AR
IoT Windows. Montón Dispositivos IoT
iOS Teléfono Apple.Ios.All Apple.Ios. Teléfono iPhone, Táctil
Tablet Apple.Ios.Tablet iPad mini, iPad, iPad Pro
TV Apple.Ios.TV Apple TV
Watch Apple.Ios.Watch iWatch
MacOS Escritorio Apple.MacOS.All MacBook Pro, MacBook Air, Mac Mini, iMac
Android Teléfono Google.Android.All Google.Android. Teléfono Dispositivos móviles destinados a cualquier tipo de Android
Tablet Google.Android.Tablet Tabletas Android
Escritorio Google.Android.Desktop Chromebooks
TV Google.Android.TV Dispositivos Android de pantalla grande
Watch Google.Android.Watch Dispositivos Google Gear
Windows 7 Windows7.Desktop Windows 7 dispositivos
8 Windows8.Desktop Windows 8/8.1
Web Microsoft Web.All Web.Edge.All Aplicaciones de motor web de Edge
Android Web.Blink.All Aplicaciones de motor web de Blink
Chrome Web. Chromium. Todo Aplicaciones de motor web Chrome
iOS Web.Webkit.All Aplicaciones de motor web de Webkit
MacOS Web.Safari.All Aplicaciones del motor web 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 adecuada si desea que el contenido del paquete solo se extraiga en plataformas y dispositivos específicos. Si le gusta el paquete de forma que se admite en todos los tipos de plataforma y dispositivo, elija Plataforma.All como familia de dispositivos de destino. De forma similar, si desea que el paquete solo se pueda usar en aplicaciones web, elija Web.All.

Archivo de manifiesto de ejemplo (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ón de plataforma

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

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

  <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 deben cumplir la notación quad (#.#.#.#). Si solo usa el SDK de empaquetado MSIX para plataformas que no son de Windows 10, simplemente puede usar "0.0.0.0" como MinVersion y MaxVersionTested como versiones.

Uso eficaz del mismo paquete en todas las plataformas (Windows 10 y no Windows 10)

Para obtener el máximo partido del SDK de empaquetado MSIX, deberá compilar el paquete de forma que se implemente como un paquete de aplicación en Windows 10 y al mismo tiempo se admite en otras plataformas. En Windows 10, puede compilar el paquete como una extensión de aplicación. Para obtener más información sobre las extensiones de aplicación y cómo pueden ayudar a que la aplicación sea extensible, consulte la entrada de blog Introduction to App Extensions (Introducción a las extensiones de aplicación).

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