Usar el SDK de MSIX para distribuir un paquete MSIX en las plataformas que no sean Windows 10Use the MSIX SDK to distribute an MSIX package on non-Windows 10 platforms

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.The MSIX SDK offers developers a universal way to distribute package contents to client devices regardless of the OS platform on the client device. Esto permite a los desarrolladores empaquetar su contenido de la aplicación una vez en lugar de tener al paquete para cada plataforma.This enables developers to package their app content once instead of having to package for each platform.

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.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. Esto significa que puede asegurarse de que el contenido del paquete se extraen del paquete solo según estime oportuno.This means you can ensure that the package contents are being extracted from the package only as you desire.

La siguiente tabla muestra las familias de dispositivos de destino para declarar en el manifiesto.The following table shows the target device families to declare in the manifest.

PlataformaPlatform FamiliaFamily Familia de dispositivos de destinoTarget Device Family NotasNotes
Windows 10Windows 10 PhonePhone





















Platform.AllPlatform.All























Windows.UniversalWindows.Universal Windows.MobileWindows.Mobile Dispositivos móvilesMobile devices
EscritorioDesktop Windows.DesktopWindows.Desktop PCPC
XboxXbox Windows.XboxWindows.Xbox Consola XboxXbox console
Surface HubSurface Hub Windows.TeamWindows.Team Dispositivos de pantalla de gran tamaño Win 10Large screen Win 10 devices
HoloLensHoloLens Windows.HolographicWindows.Holographic Auriculares VR o ARVR/AR headset
IoTIoT Windows.IoTWindows.IoT Dispositivos IoTIoT devices
iOSiOS PhonePhone Apple.Ios.AllApple.Ios.All Apple.Ios.PhoneApple.Ios.Phone iPhone, TouchiPhone, 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
VerWatch Apple.Ios.WatchApple.Ios.Watch iWatchiWatch
MacOSMacOS EscritorioDesktop 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 Dispositivos móviles que tienen como destino cualquier variante de AndroidMobile devices that target any flavor of Android
TabletTablet Google.Android.TabletGoogle.Android.Tablet Tabletas AndroidAndroid tablets
EscritorioDesktop Google.Android.DesktopGoogle.Android.Desktop ChromebooksChromebooks
TVTV Google.Android.TVGoogle.Android.TV Dispositivos Android de pantalla de gran tamañoAndroid large screen devices
VerWatch Google.Android.WatchGoogle.Android.Watch Dispositivos de engranaje de GoogleGoogle gear devices
WindowsWindows 77 Windows7.DesktopWindows7.Desktop Dispositivos Windows 7Windows 7 devices
88 Windows8.DesktopWindows8.Desktop Dispositivos Windows 8/8.1Windows 8/8.1 devices
WebWeb MicrosoftMicrosoft Web.AllWeb.All Web.Edge.AllWeb.Edge.All Aplicaciones de motor Edge webEdge web engine apps
AndroidAndroid Web.Blink.AllWeb.Blink.All Aplicaciones web de motor de intermitenciaBlink web engine apps
ChromeChrome Web.Chromium.AllWeb.Chromium.All Aplicaciones de motor de Chrome webChrome web engine apps
iOSiOS Web.Webkit.AllWeb.Webkit.All Aplicaciones de motor de WebKit webWebkit web engine apps
MacOSMacOS Web.Safari.AllWeb.Safari.All Aplicaciones de motor de web de SafariSafari web engine apps
LinuxLinux Any/AllAny/All Linux.AllLinux.All Todas las distribuciones de LinuxAll Linux distributions

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.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. 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.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. De forma similar, si le gusta el paquete que solo se admite en aplicaciones web, elija Web.All.Similarly, if you like the package to be only supported in web apps, choose Web.All.

Archivo de manifiesto (AppxManifest.xml) de ejemploSample 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>

Versión de plataformaPlatform version

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.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. En Windows 10, solo se implementarán en las versiones de sistema operativo de Windows 10 mayores que el MinVersion el paquete.On Windows 10, the package will only be deployed on Windows 10 OS versions greater than the MinVersion. 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.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.

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.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. Por lo que el manifiesto dependencias sección tendría el aspecto siguiente: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 y MaxVersionTested son campos obligatorios en el manifiesto y que necesitan para cumplir el notation(#.#.#.#) cuádruplo.MinVersion and MaxVersionTested are required fields in the manifest and they need to conform the quad notation(#.#.#.#). 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.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.

Cómo utilizar el mismo paquete de forma efectiva en todas las plataformas (Windows 10 y que no sean Windows 10)How to effectively use the same package on all platforms (Windows 10 and non-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.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. En Windows 10, puede crear el paquete como un extensión de la aplicación.On Windows 10, you can build the package as an App Extension. 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.For more information about App Extensions and how they can help make your app extensible, see the Introduction to App Extensions blog post.

En el ejemplo de archivo de manifiesto que se muestra anteriormente en este artículo, observará una propiedades elemento dentro de la AppExtension elemento.In the manifest file example shown earlier in this article, you will notice a Properties element within the AppExtension element. No hay ninguna validación realizada en esta sección del archivo de manifiesto.There is no validation performed in this section of the manifest file. Esto permite a los desarrolladores especificar los metadatos necesarios entre la aplicación host/cliente y la extensión.This allows developers to specify the required metadata between extension and host/client app.