8

概要: makeappx.exe を使用してコンパイル後にアプリ パッケージ ID を変更することは可能ですか?

複数のバージョンのアプリを同時にインストールして実行できるようにする必要があるため、複数のコピー (バリアント/インスタンス) を作成する必要がある Windows ストア アプリ (ストア用ではなく、LOB サイドローディング用) があります。シングルユーザーとして。私のアプリが MyMultiInstanceApp と呼ばれているとします。これを MyMultiInstanceApp-Prod と MyMultiInstanceApp-Test という 2 つのアプリに複製したいと考えています。これらがあれば、バージョン 1.0 の *-Prod アプリとバージョン 1.1 の *-Test アプリをインストールして実行できるからです。同時に。

これは、Visual Studio で複数のビルドを作成し、各ビルドの前にマニフェストでパッケージ ID (名前) を変更することで実現できます (「Windows ストア アプリの並列バージョンをローカルにデプロイする」で説明されています) 。

ただし、最初の .appx パッケージに基づいてコピーを作成することにより、ビルド時間後にそれを実行したいと思います。 makeappx.exesigntool.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 を変更できませんか?

4

0 に答える 0