2012-04-29 6 views
1

Windowsインストーラは通常のアプリケーションのようにロジックを実行できますか?Windowsインストーラは通常のアプリケーションのようにロジックを実行できます

例:プラグインファイルをCドライブのサードパーティアプリケーションのディレクトリにインストールするインストーラを作成しています。ただし、ユーザーが旧バージョンのサードパーティアプリケーションを使用している場合、宛先ディレクトリは異なります。

したがって、インストーラーは、サードパーティアプリケーションのどのバージョンがCドライブにあるかを判断する必要があります。新しいバージョンの場合は、C:// Program Files/3rdPartyApplication //にプラグインファイルをインストールし、C:// 3rdPartyApplicationにインストールする場合は//

Windowsインストーラはロジックとそうでない場合は、これを行うことができるバッチファイルを実行できますか?

+1

Wixを使用していますか? :http://wix.sourceforge.net/ –

+0

サードパーティ製アプリケーションのバージョンが何で、どのように「古いバージョン」と「新しいもの」がわかっているか教えていただけたら、私はあなたにバッチを表示しますあなたが望むことをするファイル。 – Aacini

答えて

1

「インストーラ」は、人のハードドライブに内容を展開し、レジストリの変更などの操作を実行するように設計された通常のアプリケーションです。

たとえば、インストールシールドのようなインストーラを使用する場合は、そのインストーラのドキュメントを参照して、実行できることを確認する必要があります。ほとんどのインストーラアプリケーションにはカスタムスクリプトを作成するための領域があります。

あなた自身でビルドすることもできますが、それほど難しくありません。

+0

確かにインストーラアプリケーションを自分で作成することはお勧めできません。それはそう簡単ではありません。あなたは起こると予想されないかもしれない多くの異なるものを気にしなければなりません。そのため、徹底的にテストされた既存のインストーラスイートを使用することをお勧めします。無料のオープンソーススイートと商用のスイートがあります。 –

1

はい、インストーラは通常のアプリケーションと同じようにロジックを実行できます。この観点から、インストーラは通常のアプリケーションです。

インストーラロジックのプログラミング方法は、使用するインストーラスイートによって異なります。アプリケーションがC:\Program Files\3rdPartyApplicationまたはC:\3rdPartyApplicationに存在するかどうかを検出するには、FileSearchの要素をWiX Toolsetとし、Windowsインストーラのドキュメントを参照してください。Searching for Existing Applications, Files, Registry Entries or .ini File Entries

さらに高度なロジックはcustom actionsで実装できます。 [カスタムアクション](http://msdn.microsoft.com/en-us/library/aa368066.aspx)は、JScript、VBScript、C/C++(DLLまたはEXEでも記述できますが、EXEはWindowsインストーラーセッション)。

1

私は別の見方をしたいと思います。 Windowsインストーラは、宣言的なドメイン固有のプログラミング言語です。チューリング完全な汎用プログラミング言語ではありません。それは他のアプリケーションと同じように意図されていません。これは、C++やC#のような汎用プログラミング言語で書かれたカスタムアクションで拡張することができますが、 "何"から何かをする "方法"を分離する同じ宣言的アプローチに従ってください。

質問の2番目の部分に答えてください。 Windowsインストーラには検索機能が組み込まれています。 AppSearchの標準アクションと関連するテーブル(AppSearch、Signature、DrLocator、CompLocator、RegLocator)に関するMSDNのトピックを読むコンポーネントに条件を付けることもできますし、ディレクトリの宛先を動的に設定することもできます。 。

これを行う方法を正確に説明するためには、さらに多くの情報が必要になります。

0

はい、Windowsインストーラは通常のアプリケーションのようなロジックを実行できます。

Alexeyが提案したように、WiX Toolsetを使用すると、作業を完了できます。

FileSearch要素(http://wix.sourceforge.net/manual-wix3/wix_xsd_filesearch.htm)を使用して、レジストリキーを使用してチェックする場合は、ファイルまたはRegistrySearch要素(http://wix.sourceforge.net/manual-wix2/wix_xsd_registrysearch.htm)の存在を確認できます。

また、ファイルやレジストリをチェックするだけでは検索が簡単ではない場合、カスタムアクションを使用すると、管理対象コードまたはアンマネージコードを(好みに応じて)書き込んで、サードパーティアプリケーションのバージョンを確認できますインストールされます。

検索結果に基づいて、実行時にインストールディレクトリを変更できます。タイプ35のカスタムアクションを使用すると、インストールディレクトリを変更できます。 http://msdn.microsoft.com/en-us/library/windows/desktop/aa368093%28v=vs.85%29.aspx

関連する問題