概要: makeappx.exe を使用してコンパイル後にアプリ パッケージ ID を変更することは可能ですか?
複数のバージョンのアプリを同時にインストールして実行できるようにする必要があるため、複数のコピー (バリアント/インスタンス) を作成する必要がある Windows ストア アプリ (ストア用ではなく、LOB サイドローディング用) があります。シングルユーザーとして。私のアプリが MyMultiInstanceApp と呼ばれているとします。これを MyMultiInstanceApp-Prod と MyMultiInstanceApp-Test という 2 つのアプリに複製したいと考えています。これらがあれば、バージョン 1.0 の *-Prod アプリとバージョン 1.1 の *-Test アプリをインストールして実行できるからです。同時に。
これは、Visual Studio で複数のビルドを作成し、各ビルドの前にマニフェストでパッケージ ID (名前) を変更することで実現できます (「Windows ストア アプリの並列バージョンをローカルにデプロイする」で説明されています) 。
ただし、最初の .appx パッケージに基づいてコピーを作成することにより、ビルド時間後にそれを実行したいと思います。 makeappx.exeとsigntool.exeを使用してほとんど動作していますが、 MyMultiInstanceApp-Test などをインストールした後、アプリがハングします起動。
私のアプローチは次のとおりです。
1) VS でソリューションをビルドするか、msbuild を使用して、最初の .appx ファイルを作成します。
2) 以下を使用して appx を解凍します。
makeappx.exe unpack /p MyMultiInstanceApp.appx /d unpacked
3) AppxManifest.xml のパッケージ ID を次のように変更します。
<Identity Name="MyMultiInstanceApp-Test" Publisher="CN=JohnDoe" Version="1.1.0.0" ProcessorArchitecture="neutral" />
<Properties>
<DisplayName>MyMultiInstanceApp-Test</DisplayName>
...
4) 以下を使用してアプリを再パッケージ化します。
makeappx.exe pack /d unpacked /p MyMultiInstanceApp-Test.appx
5) 以下を使用して、最初のパッケージに使用したものと同じ証明書を使用してパッケージに署名します。
signtool.exe sign /a /v /fd SHA256 /f MyCert.pfx MyMultiInstanceApp-Test.appx
新しい MultiInstanceApp-Test.appx のインストールは成功したように見えますが、起動しようとするとハングするだけで、イベント ビューアーのエントリの下に次のように表示されます。
\Applications and Services Logs\Microsoft\Windows\Apps\Microsoft-Windows-TWinUI/Operational :
[INFORMATION] アプリ MyMultiInstanceApp-Test_pf28w44wh44hy!App の有効化が試行されました。実行状態: アプリのアクティベーション試行、0、操作は正常に完了しました。
[エラー] アプリのアクティブ化 MyMultiInstanceApp-Test_pf28w44wh44hy!Windows.Launch コントラクトのアプリがエラーで失敗しました: リモート プロシージャ コールが失敗しました。
何か不足していますか、それともコンパイル後にパッケージ ID を変更できませんか?