2011-09-13 10 views
2

私のWIXセットアッププロジェクトでは、INIファイルからいくつかのプロパティを読み込んでいます。WIX:MSIにコマンドラインパラメータがある場合にIniFileSearchをオーバーライド

プロパティ値のいずれかがコマンドラインパラメータとして渡された場合、インストール中にIniFileSearchをオーバーライドする方法はありますか。 (それは同様サイレントインストールで動作するように私はこれを行うにしようとしています。)

コードスニペット:

<Property Id="WEBDIR" > 
    <IniFileSearch Id="WebsitesDirIni" Name="Setup.ini" Section="InstallLocations" Key="WebsitesDir" Type="raw"/> 
</Property> 

私がしたいことである下記のように私は、MSIを実行した場合、 iniファイルの値を調べるのではなく、コマンドラインパラメータで指定された値を受け入れます。

msiexec /i install.msi WEBDIR=C:\MyOverriddenPath 

答えて

1

INIファイル検索では、Windowsディレクトリでのみ検索できます。あなたのシナリオでは、このスレッドで言及されているカスタムアクションを試すことができます: Get INI file value with WiX

この方法では、コマンドラインから設定したプロパティでカスタムアクションを簡単に条件付けできます。

1

例では、WEBDIRをコマンドライン値に設定します。これは、を、に置き換えてiniファイル値で指定します。

異なるコマンドラインプロパティ名を使用し、定義されている場合はその値にWEBDIRを設定することで、必要な結果を得ることができます。すなわち

<SetProperty Id="WEBDIR" After="AppSearch" Value="[DIR]"> 
     DIR 
    </SetProperty> 

これは既存のコードに忠実であることに注意してください。

これは、iniファイルで定義されているWEBDIRプロパティよりも優先されます。

関連する問題