0

私は、installshield 2010 を使用して基本的な MSI インストーラーを作成しています。別の会社が、インストーラーが実行時に読み取り、それに応じてレジストリを更新する .reg ファイルを提供します。

これを達成する方法がわかりません。

これを実現するInstallscriptを使用してスクリプトを作成することができましたが、このスクリプトがDiffered実行で実行されている場合、setup.exeが置かれているソースディレクトリ(および.regファイル)にアクセスする方法がわかりません。

MSIGetproperty が機能せず、SETUPEXEDIR で取得できるのは "" だけです。

4

2 に答える 2

2

遅延実行中は、ほとんどのプロパティにアクセスできません。次のいずれかを実行できます。 1. CustomActionData プロパティを使用して、必要な値を渡します。2. REG ファイルから読み取った内容でレジストリ テーブルを更新する即時カスタム アクションを使用します。このようにして、Windows インストーラー エンジンがロールバックを処理します。

別の解決策を提案することもできます。他の会社は、REG ファイルにあるはずだったものを含むレジストリ テーブルを含む MST ファイルを提供します。インストールは、MST を指す TRANSFORMS プロパティで実行されます。このようにして、無料でロールバックとアンインストールを取得できます。

于 2010-01-10T14:38:39.413 に答える
1

Signature、DrLocator、および AppSearch テーブルを一緒に使用して、レジストリ ファイルの場所をパブリック プロパティに配置できます。これを「MY_REG_FILE」と呼びます。次に、カスタム アクションの条件を「MY_REG_FILE」に設定します。ファイルが実際に存在しない場合、プロパティは設定されず、条件は false と評価され、アクションは実行されません。

MSDN には、3 つのテーブルを一緒に使用してファイルを検索する例があります - http://msdn.microsoft.com/en-us/library/aa371552%28VS.85%29.aspx

于 2010-01-21T05:56:54.637 に答える