私はwebアプリケーションのインストーラにnsisを使用しています。ウィザードの1つのページで、私は3つのチェックボックスのうちの1つをユーザが選択するようにします。それぞれは2つの変数を異なる方法で設定する必要があります。 ... DATA_THREE data_three.zipnsisを使用してチェックボックスから選択肢を取得する
関数myfuncを を定義DATA_TWO data_two.zip を定義DATA_ONEのdata_one.zip を定義
:!!!ここ
は私が実行しようとしているコードです。 $ {NSD_GetState} $ RadioOne $ 1つの $ {NSD_GetState} $ RadioTwo $ 2 $ {NSD_GetState} $ RadioThree $ 3
; The two variables i want to set
Var /GLOBAL CUSTOMER_DATA ; this should be a File (?)
Var /GLOBAL LENGTH_POS ; this is a string
StrCpy $CUSTOMER_DATA ${DATA_ONE} ; default value
StrCpy $LENGTH_POS ""
${If} $1 == ${BST_CHECKED}
StrCpy $CUSTOMER_DATA ${DATA_ONE}
StrCpy $LENGTH_POS "3"
${endif}
${If} $2 == ${BST_CHECKED}
StrCpy $CUSTOMER_DATA ${DATA_TWO}
StrCpy $LENGTH_POS ""
${endif}
${If} $3 == ${BST_CHECKED}
StrCpy $CUSTOMER_DATA ${DATA_THREE}
StrCpy $LENGTH_POS ""
${endif}
; here the line i've got the error
File ${BUILD_DIR}/$CUSTOMER_DATA
...
FunctionEnd
私が持っている、それを実行しよう:
File: "./$CUSTOMER_DATA" -> no files found.
Usage: File [/nonfatal] [/a] ([/r] [/x filespec [...]] filespec [...] |
/oname=outfile one_file_only)
私は推測私が構築だファイルは、コンパイル時に定義されていないため、エラーがあります実行時にのみ実行されます。それが正しいか ?私はマクロを使うべきですか? この問題を解決するためのよりエレガントな方法は何ですか?