如何从独立MSIX包创建相关集,主包AppxManifest需做哪些修改?
主包AppxManifest.xml修改步骤
1. 补充命名空间声明
找到根节点<Package>,添加以下命名空间属性,同时将这两个命名空间加入IgnorableNamespaces列表:
<Package xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10" xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3" xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" IgnorableNamespaces="uap uap3 rescap">
注:如果原有根节点已有其他命名空间和IgnorableNamespaces值,只需要追加上述缺失的部分即可
2. 开启可选包支持
在<Properties>节点下添加uap3命名空间下的允许可选包配置:
<Properties> <!-- 原有其他配置保持不变 --> <uap3:AllowOptionalPackages>true</uap3:AllowOptionalPackages> </Properties>
3. 添加相关集权限
你报错中提到的centennial是微软桌面桥项目的内部代号,指代包含Win32可执行文件的MSIX包,这类包组成相关集需要额外添加受限权限,在<Capabilities>节点下添加以下配置即可:
<Capabilities> <!-- 原有其他权限保持不变 --> <rescap:Capability Name="relatedSetPackages" /> </Capabilities>
配套校验规则
修改完成后请确认以下规则全部满足,否则仍然会出现安装报错:
- 主包和可选包的
Publisher属性值完全一致 - 主包和可选包的版本号前三位(主版本.次版本.修订号)完全匹配,只有第四位内部版本号可以不同
- 可选包中
MainPackageDependency的Name、Publisher属性与主包的对应属性完全一致 - 两个包的处理器架构必须匹配(比如主包是x86,可选包不能是x64)
过往错误操作原因说明
- 之前添加的
PackageDependency是框架包依赖声明,和相关集可选包逻辑完全无关,所以无效 AppxBundleManifest.xml是MSIX捆绑包(.msixbundle)的元数据文件,单个MSIX包不需要该文件,所以打包时会被作为无关的元数据文件(也就是提示中的footprint file)忽略- Advanced Installer的相关集配置仅在创建捆绑包场景下才会显示,单包配置界面不展示相关选项是正常情况
内容的提问来源于stack exchange,提问作者Hammerite
相关产品推荐
相关产品推荐

