Usar o SDK do MSIX para distribuir um pacote MSIX em plataformas não Windows 10

O SDK do MIX oferece aos desenvolvedores uma maneira universal de distribuir conteúdos do pacote para dispositivos do cliente, independentemente da plataforma do sistema operacional nesses dispositivos. Isso permite que eles empacotem o conteúdo do aplicativo uma vez, ao invés de terem que empacotar para cada plataforma separadamente.

Para usufruir do SDK do MSIX e da capacidade de distribuir o conteúdo do pacote para várias plataformas, fornecemos uma maneira de especificar as plataformas de destino onde você deseja que seus pacotes sejam extraídos. Isso significa é possível garantir que o conteúdo do pacote seja extraído do pacote apenas da forma que você quiser.

A tabela a seguir mostra as famílias de dispositivos de destino a serem declaradas no manifesto.

Plataforma Família Família de dispositivos de destino Observações
Windows 10 o Telefone





















Plataform.All























Windows.Universal Windows.Mobile Dispositivos móveis
Área de Trabalho Windows.Desktop Computador
Xbox Windows.Xbox Console do Xbox
Hub de Superfície Windows.Team Dispositivos Win 10 de tela grande
HoloLens Windows.Holografic Headset VR/RA
IoT Windows.IoT Dispositivos IoT
iOS o Telefone Apple.Ios.All Apple.Ios.Phone iPhone, Touch
Tablet Apple.Ios.Tablet iPad mini, iPad, iPad Pro
TV Apple.Ios.TV Apple TV
Assistir Apple.Ios.Watch iWatch
MacOS Área de Trabalho Apple.MacOS.All MacBook Pro, MacBook Air, Mac Mini, iMac
Android o Telefone Google.Android.All Google.Android.Phone Dispositivos móveis que utilizam qualquer versão do Android
Tablet Google.Android.Tablet Tablets Android
Área de Trabalho Google.Android.Desktop Chromebook
TV Google.Android.TV Dispositivos Android de tela grande
Assistir Google.Android.Watch Dispositivos Google Gears
Windows 7 Windows7.Desktop Dispositivos Windows 7
8 Windows8.Desktop Dispositivos Windows 8 e 8.1
Web Microsoft Web.All Web.Edge.Todos Aplicativos do mecanismo da web Edge
Android Web.Blink.All Aplicativos do mecanismo da web Blink
Chrome Web.Chromium.All Aplicativos do mecanismo da web Chrome
iOS Web.Webkit.Todos Aplicativos do mecanismo da web Webkit
MacOS Web.Safari.All Aplicativos do mecanismo de web Safari
Linux Qualquer/Todos Linux.All Todas as distribuições Linux

No arquivo de manifesto do pacote do aplicativo, será necessário incluir a família de dispositivos de destino apropriada caso você deseje que o conteúdo do pacote seja extraído apenas em plataformas e dispositivos específicos. Se desejar construir o pacote de forma que seja suportado em todas as plataformas e tipos de dispositivos, escolha Platform.All como a família de dispositivos de destino. Da mesma forma, se desejar que o pacote tenha suporte somente em aplicativos Web, escolha Web.All.

Arquivo de manifesto de exemplo (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>

Versão da plataforma

No arquivo de manifesto de exemplo acima, juntamente com o nome da plataforma, também há parâmetros para especificar MinVersion e MaxVersionTested Esses parâmetros são usados em plataformas Windows 10. No Windows 10, o pacote só será implantado em versões do sistema operacional Windows 10 que sejam superiores ao MinVersion. Em outras plataformas que não sejam o Windows 10, os parâmetros MinVersion e MaxVersionTested não são usados para fazer a declaração que determina se os conteúdos do pacote devem ser extraídos.

Se deseja usar o pacote para todas as plataformas (Windows 10 e não Windows 10), recomendamos que use os parâmetros MinVersion e MaxVersionTested para especificar as versões do sistema operacional Windows 10 onde gostaria que seu aplicativo funcionasse. Portanto, a seção Dependências do seu manifesto ficaria assim:

  <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 são campos obrigatórios no manifesto e precisam estar em conformidade com a notação quádrupla(#.#.#.#). Se estiver usando apenas o SDK de empacotamento do MSIX apenas para plataformas que não sejam Windows 10, pode simplesmente usar '0.0.0.0' como as versões MinVersion e MaxVersionTested.

Como usar o mesmo pacote em todas as plataformas (Windows 10 e não Windows 10) efetivamente

Para aproveitar ao máximo o SDK de Empacotamento MSIX, você precisará criar o pacote de forma que seja implantado como um pacote do aplicativo no Windows 10 e, ao mesmo tempo, seja suportado em outras plataformas. No Windows 10, é possível compilar o pacote como uma Extensão de aplicativo. Para obter mais informações sobre Extensões de Aplicativos e como elas podem ajudar a tornar o seu aplicativo extensível, consulte a postagem no blog Introdução às Extensões de Aplicativos.

No exemplo de arquivo de manifesto mostrado anteriormente neste artigo, você pode ver um elementoProperties dentro do elemento AppExtension . Nenhuma validação é executada nesta seção do arquivo de manifesto. Isso permite que os desenvolvedores especifiquem os metadados necessários entre a extensão e o aplicativo host/cliente.