生成 MSIX 打包组件

本文介绍如何使用命令行工具(不使用 Visual Studio 或 MSIX 打包工具)生成用于打包应用程序的 MSIX 打包组件。

若要手动打包应用,需要创建包清单文件,添加打包组件,然后运行 MakeAppx.exe 命令行工具来生成 MSIX 包。

首先准备打包

查看有关在打包应用程序之前需要知道的事项部分(如果尚未查看)。

创建程序包清单

创建文件,将其命名为 appxmanifest.xml,然后向其添加此 XML。

这是一个基本模板,其中包含程序包需要的元素和特性。 我们将在下一步部分中对它们添加值。

<?xml version="1.0" encoding="utf-8"?>
<Package
    xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities">
  <Identity Name="" Version="" Publisher="" ProcessorArchitecture="" />
    <Properties>
       <DisplayName></DisplayName>
       <PublisherDisplayName></PublisherDisplayName>
             <Description></Description>
      <Logo></Logo>
    </Properties>
    <Resources>
      <Resource Language="" />
    </Resources>
      <Dependencies>
      <TargetDeviceFamily Name="Windows.Desktop" MinVersion="" MaxVersionTested="" />
      </Dependencies>
      <Capabilities>
        <rescap:Capability Name="runFullTrust"/>
      </Capabilities>
    <Applications>
      <Application Id="" Executable="" EntryPoint="Windows.FullTrustApplication">
        <uap:VisualElements DisplayName="" Description=""   Square150x150Logo=""
                   Square44x44Logo=""   BackgroundColor="" />
      </Application>
     </Applications>
  </Package>

填写文件的程序包级别元素

在此模板中填写描述程序包的信息。

标识信息

下面是一个带特性占位符文本的示例 Identity 元素。 可将 ProcessorArchitecture 特性设置为 x64x86

<Identity Name="MyCompany.MySuite.MyApp"
          Version="1.0.0.0"
          Publisher="CN=MyCompany, O=MyCompany, L=MyCity, S=MyState, C=MyCountry"
                ProcessorArchitecture="x64">

备注

如果已在 Microsoft Store 中保留了应用程序名称,可以使用合作伙伴中心获取“名称”和“发布者”的值。 如果你打算将应用程序旁加载到其他系统上,只要选择的发布者名称与用于对应用进行签名的证书上的名称相匹配,就可以提供自己的名称。

属性

属性 元素具有 3 个所需子元素。 下面是一个带元素占位符文本的示例 属性 节点。 DisplayName 是在 Store 中保留的应用程序名称,用于上传到 Store 的应用。

<Properties>
  <DisplayName>MyApp</DisplayName>
  <PublisherDisplayName>MyCompany</PublisherDisplayName>
  <Logo>images\icon.png</Logo>
</Properties>

资源

下面是一个示例资源节点。

<Resources>
  <Resource Language="en-us" />
</Resources>

依赖关系

对于要为其创建包的桌面应用,请始终将 Name 特性设置为 Windows.Desktop

<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.14316.0" MaxVersionTested="10.0.15063.0" />
</Dependencies>

功能

对于要为其创建包的桌面应用,必须添加 runFullTrust 功能。

<Capabilities>
  <rescap:Capability Name="runFullTrust"/>
</Capabilities>

填写应用程序级别元素

在此模板中填写描述应用的信息。

Application 元素

对于要为其创建包的桌面应用,Application 元素的 EntryPoint 特性始终是 Windows.FullTrustApplication

<Applications>
  <Application Id="MyApp"     
        Executable="MyApp.exe" EntryPoint="Windows.FullTrustApplication">
   </Application>
</Applications>

可视元素

下面是一个示例 VisualElements 节点。

<uap:VisualElements
    BackgroundColor="#464646"
    DisplayName="My App"
    Square150x150Logo="images\icon.png"
    Square44x44Logo="images\small_icon.png"
    Description="A useful description" />

(可选)添加基于目标的未着色资产

基于目标的资源是指显示在以下位置的图标和磁贴:Windows 任务栏、任务视图、ALT+TAB、贴靠助手和“开始”磁贴的右下角。 可在此处了解相关详细信息。

  1. 获取正确的 44x44 图像,然后将它们复制到包含图像(即资产)的文件夹。

  2. 对于每个 44x44 图像,在相同的文件夹中创建副本,并将 .targetsize 44_altform unplated 附加到文件名。 你应该有每个图标的两个副本,每个都以特定方式命名。 例如,完成该过程后,资产文件夹可能包含 MYAPP_44x44.pngMYAPP_44x44.targetsize-44_altform unplated.png

    备注

    在此示例中,MYAPP_44x44.png 是将在 MSIX 包的 Square44x44Logo 徽标特性中引用的图标。

  3. 在清单文件中,对要设为透明的每个图标设置 BackgroundColor

  4. 继续下一小节,以生成新的包资源索引文件。

使用 MakePri 生成包资源索引 (PRI) 文件

如果已按上面所述创建了基于目标的资源,或者在创建包后修改了应用程序的任何视觉资产,则必须生成新的 PRI 文件。

根据 SDK 的安装路径,下面是 MakePri.exe 在 Windows 10 电脑上的位置:

  • x86:C:\Program Files (x86)\Windows Kits\10\bin\<生成号>\x86\makepri.exe
  • x64:C:\Program Files (x86)\Windows Kits\10\bin\<生成号>\x64\makepri.exe

没有此工具的 ARM 版本。

  1. 打开命令提示符或 PowerShell 窗口。

  2. 将目录更改为程序包的根文件夹,然后通过运行命令 <path>\makepri.exe createconfig /cf priconfig.xml /dq en-US 创建 priconfig.xml 文件。

  3. 使用命令 <path>\makepri.exe new /pr <PHYSICAL_PATH_TO_FOLDER> /cf <PHYSICAL_PATH_TO_FOLDER>\priconfig.xml 创建 resources.pri 文件。

    例如,适用于你的应用程序的命令可能如下所示:<path>\makepri.exe new /pr c:\MYAPP /cf c:\MYAPP\priconfig.xml

  4. 根据下一步骤中的说明打包应用程序。

在打包之前测试应用程序

可以部署未打包的应用程序,并在打包或签名之前对其进行测试。 为此,请在 PowerShell 窗口中运行以下 cmdlet。 确保传入位于包的根目录中的应用程序清单文件,以及其他所有包组件:

Add-AppxPackage –Register AppxManifest.xml

完成此操作后, 应用应会部署到系统中,可对其进行测试,以确保在打包之前一切正常。 若要更新应用的 .exe 或 .dll 文件,请将程序包中的现有文件替换为新文件、增加 AppxManifest.xml 中的版本号,然后再次运行上述命令。

将组件打包到 MSIX

下一步是使用 MakeAppx.exe 为应用程序生成 MSIX 包。 Makeappx.exe 随附在 Windows 10 SDK 中,如果你已安装 Visual Studio,则可通过 Visual Studio 的开发人员命令提示符轻松访问它。

请参阅使用 MakeAppx.exe 工具创建 MSIX 包或捆绑包

备注

打包的应用程序始终以交互用户的身份运行,任何安装已打包应用程序的驱动器必须以 NTFS 格式化。