J'utilise nsis pour un installateur d'une application Web. Dans une page de l'assistant je veux que l'utilisateur choisisse l'une des trois cases à cocher: chacun d'entre eux doit définir deux variables de différentes manières.Utilisation de nsis pour récupérer des choix à partir des cases à cocher
Voici le code que je suis en train de courir:!
définir DATA_ONE data_one.zip définir DATA_TWO data_two.zip définir DATA_THREE data_three.zip
Fonction myfunc ... $ {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
Lorsque je tente de l'exécuter j'ai:
File: "./$CUSTOMER_DATA" -> no files found.
Usage: File [/nonfatal] [/a] ([/r] [/x filespec [...]] filespec [...] |
/oname=outfile one_file_only)
Je présume que l'erreur est parce que le fichier que je suis la construction n'est pas défini au moment de la compilation mais seulement à l'exécution. Est-ce correct ? Dois-je utiliser une macro? Quelle est la manière la plus élégante de résoudre ce problème?