0

私が取り組んでいるアプリケーションの以前のバージョン (およびそのインストーラー) は、他の誰かによって作成されました。更新機能を動作させるのに苦労しているので、インストールの前に以前のバージョンをアンインストールしたいのですが、インストールが確実に進むことを確認した後でした。

私は明らかに何か間違ったことをしています。インストールを開始する前に、インストーラーから次のコマンド ラインを実行したい。インストーラーを実行すると、アプリケーションはインストールされますが、コマンド ラインが実行されません。どんな助けでも大歓迎です。

実行したいコマンドラインは次のとおりです。

start /wait MsiExec.exe /quiet /x{MyGuid-0F4A-4F53-8639-0BEE6018EAD6}

私の WiX XML の関連部分:

<Property Id="QtExecCmdLine" Value="start /wait MsiExec.exe /x{MyGuid-0F4A-4F53-8639-0BEE6018EAD6}"/>
<CustomAction Id="UninstallOldVersion" BinaryKey="WixCA" DllEntry="CAQuietExec" Execute="immediate" Return="ignore"/>
<InstallExecuteSequence>
  <Custom Action="UninstallOldVersion" Before="InstallInitialize"/>
</InstallExecuteSequence>

プロンプトから実行すると、コマンドは期待どおりに機能します。また、インストーラーのコンパイルまたは実行中に、エラーや警告は表示されません。

4

1 に答える 1

1

マシン上で一度に1つのインストールトランザクションを強制するミューテックスがWindowsインストーラーに組み込まれているため、実行しようとしていることは機能する可能性がありません。

代わりに、MajorUpgrade要素を調べて、以前のバージョンの削除を作成する必要があります。

于 2013-01-18T21:56:01.663 に答える