使用 MSIX SDK 将在非 Windows 10 平台上的 MSIX 包分发

MSIX SDK 开发人员提供分发到客户端设备,而不考虑客户端设备上的操作系统平台的包内容的通用方法。 这使开发人员能够一次而不是让其应用程序内容打包到为每个平台的包。

若要充分利用 MSIX SDK 和分发到多个平台在包内容的能力,我们提供一种方法来指定想将包解压缩到的目标平台。 这意味着您可以确保包的内容,从包仅按需提取。

下表显示了在清单中声明的目标设备系列。

平台 系列 目标设备系列 说明
Windows 10 Phone





















Platform.All























Windows.Universal Windows.Mobile 移动设备
桌面设备 Windows.Desktop PC
Xbox Windows.Xbox Xbox 控制台
Surface Hub Windows.Team 大屏幕 Win 10 设备
HoloLens Windows.Holographic VR/AR 耳机
IoT Windows.IoT 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 电视
观看 Apple.Ios.Watch iWatch
MacOS 桌面设备 Apple.MacOS.All MacBook Pro,MacBook 以无线方式,Mac Mini iMac
Android Phone Google.Android.All Google.Android.Phone 面向任何风格的 Android 的移动设备
Tablet Google.Android.Tablet Android 平板电脑
桌面设备 Google.Android.Desktop Chromebook
TV Google.Android.TV Android 大屏幕设备
观看 Google.Android.Watch Google 齿轮设备
Windows 7 Windows7.Desktop Windows 7 设备
8 Windows8.Desktop Windows 8/8.1 设备
Web Microsoft Web.All Web.Edge.All 边缘 web 引擎应用
Android Web.Blink.All 闪烁 web 引擎应用
镶边 Web.Chromium.All 引擎的 chrome web 应用
iOS Web.Webkit.All Webkit web 引擎应用
MacOS Web.Safari.All Safari web 引擎应用
Linux Any/All Linux.All 所有 Linux 发行版

在应用包清单文件中,您将需要包含相应的目标设备系列,如果想要仅在特定平台和设备上提取的包内容。 如果您喜欢 bulid 的方式,它支持所有平台和设备类型的包,请选择Platform.All作为目标设备系列。 同样,如果你想要仅支持 web 应用中的包,选择Web.All

示例清单文件 (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>

平台版本

在上述示例清单文件中,以及平台名称,也有参数,以指定MinVersionMaxVersionTested在 Windows 10 平台上使用这些参数。 在 Windows 10 中,包将仅部署 Windows 10 操作系统版本大于 MinVersion 上。 在其他非 Windows 10 平台,MinVersion 和 maxversiontested 赋予参数不用于使是否提取包内容的声明。

如果你想要使用为所有平台 (Windows 10 和 Windows 10) 的包,我们建议使用 MinVersion 和 maxversiontested 赋予参数来指定你想在应用程序处理 Windows 10 OS 版本。 因此在清单依赖项部分应如下所示:

  <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>

MinVersionMaxVersionTested是清单中的必填的字段,它们必须符合四 notation(#.#.#.#)。 如果您仅使用仅非 Windows 10 平台 MSIX 打包 SDK,可以只需使用"0.0.0.0"作为MinVersionMaxVersionTested作为版本。

如何有效地在所有平台 (Windows 10 和 Windows 10) 上使用同一个包

若要充分利用 MSIX 打包 SDK,将需要用于生成包将部署等 Windows 10 上和在同一时间在其他平台上受支持的应用程序包的方式。 在 Windows 10 中,可以生成将包作为应用扩展。 有关应用扩展以及它们如何帮助使您的应用程序扩展的详细信息,请参阅应用程序扩展插件简介博客文章。

在本文前面部分所示的清单文件示例,您会注意到属性中的元素AppExtension元素。 不没有在清单文件的此部分中执行任何验证。 这允许开发人员指定之间扩展和主机/客户端应用程序所需元数据。