tho*_*sen 7 windows-runtime windows-store-apps appx appxmanifest
简介:使用makeappx.exe编译后是否可以修改应用程序包标识?
我有一个Windows商店应用程序(用于LOB侧载,而不是商店),我需要创建多个副本(变体/实例),因为我需要能够同时安装和运行多个版本的应用程序作为单个用户.假设我的应用程序名为MyMultiInstanceApp,我想将其克隆为两个名为MyMultiInstanceApp-Prod和MyMultiInstanceApp-Test的应用程序,因为有了这些,我可以在版本1.0中安装并运行*-Prod应用程序,在1.1版中安装*-Test应用程序同时.
我可以通过在Visual Studio中进行多个构建并在每次构建之前更改清单中的包标识(名称)来实现此目的 - 如本地部署Windows应用商店的并行版本中所述.
但是,我希望在构建时间之后,通过基于最初的.appx包创建副本,并且我几乎使用makeappx.exe和signtool.exe工作,但是在安装了例如MyMultiInstanceApp-Test之后,应用程序挂起启动.
我的方法如下:
1)通过在VS中构建解决方案或通过msbuild创建初始.appx文件
2)使用以下方法解压缩appx:
makeappx.exe unpack /p MyMultiInstanceApp.appx /d unpacked
Run Code Online (Sandbox Code Playgroud)
3)将AppxManifest.xml中的包标识修改为:
<Identity Name="MyMultiInstanceApp-Test" Publisher="CN=JohnDoe" Version="1.1.0.0" ProcessorArchitecture="neutral" />
<Properties>
<DisplayName>MyMultiInstanceApp-Test</DisplayName>
...
Run Code Online (Sandbox Code Playgroud)
4)使用以下方法重新打包应用程序:
makeappx.exe pack /d unpacked /p MyMultiInstanceApp-Test.appx
Run Code Online (Sandbox Code Playgroud)
5)使用与初始包相同的证书签署包,使用:
signtool.exe sign /a /v /fd SHA256 /f MyCert.pfx MyMultiInstanceApp-Test.appx
Run Code Online (Sandbox Code Playgroud)
安装新的MultiInstanceApp-Test.appx似乎很成功,但在尝试启动时 - 它只是挂起,并且在条目下的事件查看器中可以看到以下内容:
\应用程序和服务日志\ Microsoft\Windows\Apps\Microsoft-Windows-TWinUI/Operational:
[信息]激活app MyMultiInstanceApp-Test_pf28w44wh44hy!App尝试了.执行状态:尝试激活应用程序,0,操作成功完成.
[错误]激活应用程序MyMultiInstanceApp-Test_pf28w44wh44hy!Windows.Launch合同的应用程序失败,错误:远程过程调用失败.
我是否遗漏了某些内容,或者在编译后无法修改包标识?
| 归档时间: |
|
| 查看次数: |
1116 次 |
| 最近记录: |