Windows runtime 在生成后修改appx清单中的包标识

Windows runtime 在生成后修改appx清单中的包标识,windows-runtime,windows-store-apps,appx,appxmanifest,Windows Runtime,Windows Store Apps,Appx,Appxmanifest,摘要:使用makeappx.exe编译后是否可以修改应用程序包标识? 我有一个windows应用商店应用程序(用于LOB侧加载,而不是应用商店),我需要为其创建多个副本(变体/实例),因为我需要能够作为单个用户同时安装和运行应用程序的多个版本。假设我的应用程序名为MyMultiInstanceApp,我想将其克隆到两个名为MyMultiInstanceApp Prod和MyMultiInstanceApp Test的应用程序中,因为有了它们,我可以同时安装和运行版本1.0中的*-Prod应用程序

摘要:使用makeappx.exe编译后是否可以修改应用程序包标识?

我有一个windows应用商店应用程序(用于LOB侧加载,而不是应用商店),我需要为其创建多个副本(变体/实例),因为我需要能够作为单个用户同时安装和运行应用程序的多个版本。假设我的应用程序名为MyMultiInstanceApp,我想将其克隆到两个名为MyMultiInstanceApp Prod和MyMultiInstanceApp Test的应用程序中,因为有了它们,我可以同时安装和运行版本1.0中的*-Prod应用程序和版本1.1中的*-Test应用程序

我可以通过在Visual Studio中进行多个构建并在每次构建之前更改清单中的包标识(名称)来实现这一点,如中所述

但是,我希望在构建后,通过基于初始.appx包制作副本来完成此操作,我几乎可以使用makeappx.exesigntool.exe,但在安装例如MyMultiInstanceApp测试之后,应用程序在启动时挂起

我的做法如下:

1) 通过在VS中或通过msbuild生成解决方案来创建初始.appx文件

2) 使用以下方法解压缩appx:

makeappx.exe unpack /p MyMultiInstanceApp.appx /d unpacked
3) 将AppxManifest.xml中的包标识修改为:

<Identity Name="MyMultiInstanceApp-Test" Publisher="CN=JohnDoe" Version="1.1.0.0" ProcessorArchitecture="neutral" />
<Properties>
  <DisplayName>MyMultiInstanceApp-Test</DisplayName>
...
5) 使用与初始包相同的证书签署包,使用:

signtool.exe sign /a /v /fd SHA256 /f MyCert.pfx MyMultiInstanceApp-Test.appx
新的MultiInstanceApp-Test.appx的安装似乎成功,但在尝试启动它时,它只是挂起,在事件查看器中的条目下可以看到以下内容:

\应用程序和服务日志\Microsoft\Windows\Apps\Microsoft Windows TWinUI/操作:

[信息]激活应用程序MyMultiInstanceApp-Test_pf28w44wh44hy!已尝试应用程序。 执行状态:尝试激活应用程序,0,操作失败 已成功完成

[错误]激活应用程序MyMultiInstanceApp-Test_pf28w44wh44hy!应用程序 Windows.Launch协定失败,错误为:远程过程 呼叫失败


我是否遗漏了某些内容,或者编译后无法修改包标识?

我发现更改
标识.Name
是导致此错误的原因。只有更改
DisplayName
才可以。我知道这不能解决你的问题,但我只是想补充一点。我猜身份名称不知何故被烧录到了appx包中的一些二进制文件中,但是我还没有找到任何关于这个的细节。我们在本周早些时候做了很多事情。我们得出的结论是,目前这是不可能的。原因是.pri文件(由msbuild创建)包含对原始(运行msbuild之前)appxmanifest文件中给定标识的引用。只有msbuild可以生成此pri文件(AFAIK)…太糟糕了!这个问题仍然存在吗?
signtool.exe sign /a /v /fd SHA256 /f MyCert.pfx MyMultiInstanceApp-Test.appx