2012-10-22 3 views
9

バックグラウンドを与える - 私はベンダーから来た4つのMSIを持っており、これは私たちの会社のサーバー(私たちは約3500台のサーバーを見ています)に行く必要があります。現時点では、私のカウンターパートはvbs、ps1スクリプトを使ってこれを管理しています。しかし、このスクリプトの問題は、アップデートが来るたびに、新しいパッケージを実行する前に既存のパッケージをアンインストールしてハードコーディングを心配する必要があることです。WIX BundleでCustomActionを使用するには?

すべての4つのMSIをまとめてWIXスクリプトをセットアップすることで、ハードウェアの処理が非常に少ない全プロセスを自動化したいと考えています。私はWIXバンドルについて読んで、それを使って単一のMSIを作成しました。しかし、今は4つのMSIに渡すべき変数がたくさんあるので、MSIが実行されている環境/マシンに基づいてこれらの変数を設定するカスタムアクションを使用することを考えました。しかし、私は仕事にカスタムアクションを行うことはできません?何か不足していますか?

少しのグーグルで、バンドルにCustomActionsがないようなことがありましたか?誰かが確認できますか?

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

答えて

4

私はそれを見ると、あなたは3つのオプションがあります:何が必要な情報に応じて、

  1. を、あなたは、このようなレジストリキーを読み取り、ファイルの検索を実行するような単純なタスクを実行するためにWixUtilExtensionを使用することができ、そのことができます結果をプロパティとしてインストールパッケージに渡します。

  2. (バンドルではなく)個々のインストールパッケージ自体でカスタムアクションを実装します。

  3. カスタムブートストラップアプリケーションを作成して、設定する必要があるすべてのプロパティを決定し、インストールパッケージに渡します。これは、#1、#2よりも複雑ですが、ご興味のある次のリンクは、あなたが始める必要がある場合: introducing managed bootstrapper applicationswrite a wpf wix installer

+0

意味があります。私はバンドルでCAの実行を得るために可能な限りすべてを試しました、そしてそれはちょうど呼ばれません。私が理解しているところでは、たとえWIX BundleがMSIファイルを生成しても、実際にはMSIではありません(msiexecで実行するか、ORCAで開くことはできません)。それは単なるexeまたはすべてのMSIを一緒に組み合わせたプログラムであり、MSIのプロパティを持っていません。 P.S:私はそれがMSIとして名前をつけたのを混乱させるように思っています:) – Isaiah4110

+0

@ user1766402、私はあなたの質問を読むまで、MSIとしてバンドルを出力することが可能であることに気づいていませんでした。 Visual Studioでプロジェクトを右クリックし、[プロパティ]を選択し、出力を.exeに変更します。とにかく、bundle/bootstrapperプロジェクトのデフォルトがこれです。 – BryanJ

+3

WiXバンドルはMSIではなく、実行可能ファイルです。 .exeの名前を.msiに変更しても、それは変更されません。 :) –

9

ビジェイによって識別される4番目のオプション、便利な軽量ハックは、ありますKotecha(http://vijayskotecha.blogspot.com/2013/07/wix-bootstrapper-custom-action.htmlを参照)、...

本質的には、パススルーする.batまたは.cmdバッチファイルの周りに<ExePackage>を作成します。バッチ/コマンドファイルには、すべてのコマンドライン引数をファーストクラスコマンドとして再実行する単一の行「%*」が含まれています。したがって

WixCustomAction.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" /> 

これらの<ExePackages>は、必要に応じて、必要に応じて、必要に応じて連続して必要に応じて異なるものを使用して入れることができる。InstallCommand

関連する問題