11

背景を説明すると、ベンダーから提供された 4 つの MSI があり、これは会社のサーバーに送信する必要があります (約 3500 台のサーバーを検討しています)。現在、私のカウンターパートは、vbs、ps1 スクリプトを使用してこれを管理しています。しかし、スクリプトの問題は、更新が来るたびに、新しいパッケージを実行する前に既存のパッケージをアンインストールすることと、大量のハードコーディングについて心配しなければならないことです。

4 つの MSI をすべてまとめてパッケージ化する WIX スクリプトを設定することで、プロセス全体を (ハードコーディングを大幅に減らして) 自動化したいと考えています。WIX バンドルについて読み、それを使用して単一の MSI を作成しました。しかし、今では 4 つの MSI に渡される変数がたくさんあるので、カスタム アクションを使用して、MSI が実行されている環境/マシンに基づいてこれらの変数を設定することを考えました。しかし、カスタム アクションを機能させることはできませんか? 何か不足していますか?

少しグーグルで検索したところ、バンドルに CustomActions がないように見えましたか? 誰か確認できますか?

また、CA がない場合、どのようなオプションがありますか? 4 つの MSI に渡される変数を操作するにはどうすればよいですか? それらのほとんどは、実行されているマシンに基づいて設定する必要があります (インストール パス、ユーザー ID、アプリケーション プール ID など)。

4

2 に答える 2

12

Vijay Kotecha ( http://vijayskotecha.blogspot.com/2013/07/wix-bootstrapper-custom-action.htmlを参照) によって特定された、4 番目のオプションである便利な軽量ハックがあります...

基本的に<ExePackage>、パススルー .bat または .cmd バッチ ファイルを中心に構築します。バッチ/コマンド ファイルには、%*すべてのコマンド ライン引数をファースト クラス コマンドとして再実行する単一行 ' ' が含まれています。

したがって:

<ExePackage ... SourceFile="SourcePath\WixCustomAction.cmd"
    InstallCommand="my_custom_action.exe my_custom_parameters" />
<ExePackage ... SourceFile="SourcePath\WixCustomAction.cmd"
    InstallCommand="my_next_action.exe my_next_parameters" />

WixCustomAction.cmd' ' のみを含むファイルはどこにありますか%*

これらは、必要に応じて異なる を使用して、必要に応じて連続して<ExePackages>に配置できます。<Bundle><Chain>InstallCommand

于 2015-12-05T22:28:03.827 に答える