5

以前のバージョンのアプリケーションがインストールされているかどうかを確認する NSIS スクリプトを作成しています。その場合、構成ファイルをこの以前のバージョンからインポートする必要があるかどうかを尋ねられます。したがって、ユーザーが「はい」または「いいえ」を選択したかどうかに応じて、実行時に設定しようとしているグローバル変数構成ファイルがあります。私が抱えている問題は、コンパイル時にファイル: "${XMLConfigDir}*.xml" -> ファイルが見つかりません。XMLConfigDir がまだ設定されていないためです。とにかく、実行時に変数を設定する方法はありますか?

4

2 に答える 2

10

変数の宣言 ( Varコマンド) とシンボル ( !defineコマンドで定義)には違いがあります。

Var /GLOBAL myVar ; This is variable -> use it as $myVar

!define mySymbol; This is symbol -> use it as ${mySymbol} 

これを試して:

!define XMLConfigDir "C:\some_path_to_XML\subdir\"

Section "Main Section" 
        File "${XMLConfigDir}*.xml"
SectionEnd

シンボルは、インストーラーの実行時に/Dコマンド ライン スイッチを使用して設定することもできます。

于 2012-08-15T16:51:59.873 に答える
2

私の問題の解決策は、SetOutPath の後に File が続くのではなく、CopyFiles 組み込み関数を使用することでした。

于 2012-08-17T12:25:33.493 に答える