针对 UWP/Centennial 项目构建的映射文件是什么?我如何制作它们?

What are mapping files for building against UWP / Centennial projects and how do I make them?

我正在尝试通过一些基本的自动化来构建一些 UWP / Centennial 项目,我正处于需要进行测试签名的 AppX、解压并重新签名的地步,然后重新-pack 并真正签署 AppX 本身。例如,

makeappx unpack /p "%CD%\UpgradeTestAppX_1.0.3.0_x64.appx" /d "%CD%\unpacked" /o /l

效果很好,运行 签名工具也可以对 "%CD%\unpacked"

中的内容进行签名

我 运行 遇到的问题是文档空白。

/f Specifies the mapping file.

/m Specifies the path to an input app manifest which will be used as the basis for generating the output app package or resource package's manifest. When you use this option, you must also use /f and include a [ResourceMetadata] section in the mapping file to specify the resource dimensions to be included in the generated manifest.

我看到这个 "mapping file" 提到过好几次,但我无法找到它们的确切含义。这个术语对我来说太笼统了,无法推断它是什么或如何制作。我能想到的最好的是它可能指的是

...App package block map (AppxBlockMap.xml)...

但是还有这个:

<mapping file> File name that specifies the package source an destination

但这似乎与恰好包含单词映射的其他类型的文件不匹配,或者至少 <mapping file> 对我来说似乎比 App package block map 更通用。

  1. MakeAppX 当前文档的 <mapping file> 是否与 App package block map 相同?
  2. 我在哪里可以参考此映射文件的示例或指南来帮助我了解它的全部用途?如果映射文件是 AppxBlockMap.xml 文件,那么我只想知道为了达到预期目的可以用它做什么。

官方文档描述了一个映射文件here。 如果你的makeappx命令只使用/f,你不需要指定资源文件,那么你的映射文件可以是一个文本,这样写:

[Files]
"C:\MyApp\StartPage.html"               "default.html"
"C:\Program Files (x86)\example.txt"    "misc\example.txt"
"\MyServer\path\icon.png"              "icon.png"
"my app files\readme.txt"               "my app files\readme.txt"
"CustomManifest.xml"                    "AppxManifest.xml"

如果您使用 /m 命令,则必须使用 /f 并包含一个 [ResourceMetadata] 部分,如下所示:

[ResourceMetadata]
"ResourceDimensions"                    "language-en-us"
"ResourceId"                            "English"

[Files]
"images\en-us\logo.png"                 "en-us\logo.png"
"en-us.pri"                             "resources.pri"