2

ここにあるチュートリアルに基づいて、Windows インストーラーのカスタム アクションを作成しました: http://www.codeproject.com/kb/install/msicustomaction.aspx

私のカスタムアクションは、ユーザーがまだ開くことができる特定の名前のバックグラウンドプロセスを強制終了しています。その理由は、特定の EXE が実行中であり、セットアップを続行するには閉じる必要があるという警告をユーザーに表示したくないからです。これは、チュートリアルのように「InstallUISequence」テーブルでアクションが作成されるため、MSI が UI シーケンスを通過するときに正常に機能します。
ただし、MSI がサイレント モードで使用されている場合 (右クリックして [修復] または [アンインストール] を選択)、カスタム アクションはもちろん実行されません。

カスタム アクションをサイレント モードで実行した場合でもすぐに実行されるようにするには、どこにカスタム アクションを配置する必要がありますか?

「InstallExecuteSequence」に追加してみましたが、「アプリ実行中」の警告がまだ表示されます。次に、カスタム アクションのシーケンス番号を 5 に下げてみましたが、これも役に立ちませんでした。

注:
Orca を使用して、Visual Studio セットアップ プロジェクトから生成された MSI を変更しています。次に、変換ファイルを使用して適用します。

4

2 に答える 2

6

アクションを 2 回(UI シーケンスで 1 回、実行シーケンスで 1 回)スケジュールする必要があります。その後、実行を試みる最初のシーケンスでのみ実行されるようにスケジュールします。(例: CustomAction/@execute='firstSequence'WiX)

更新: Orca を使用している場合は、Custom Action Execution Scheduling OptionsmsidbCustomActionTypeFirstSequenceに関するドキュメントを参照してください。ビットが設定されていることを確認するだけで済みます。

于 2010-04-28T05:23:15.970 に答える
-1

「InstallExecuteSequence」にカスタムアクションを正しく配置しています。「「アプリ実行中」の警告」が表示されるのは誰ですか? カスタム アクションが実際に実行されたことを確認しましたか? Orca はカスタム アクションをシーケンスの最初のアクションとして表示しますか? インストールログとは何ですか?

于 2010-04-27T13:25:19.560 に答える