2011-10-29 9 views
34

Używam Inno Setup wersji 5.4.2.Inno Setup - #define directive - jak korzystać z wcześniej zdefiniowanej zmiennej?

Chcę zdefiniować ścieżkę do plików do skopiowania (parametr Źródło: parametr w sekcji [Pliki] jako dwie części, nazwa ścieżki podstawowej i podkatalogów, których używam dla plików specjalnych (takich jak .dlls) . próbowałem następujące:

#define MyAppSetupDir "D:\MyApp\setup" 
#define MyAppSetupQtDLLs {#MyAppSetupDir}"\DLLs" 
[Files] 
Source: {#MyAppSetupDir}\MyApp.exe; DestDir: {app}; Flags: ignoreversion 
Source: {#MyAppSetupDLLs}\mstext35.dll; DestDir: {app}; Flags: ignoreversion 

ale otrzymuję następujący błąd kompilacji

[ISPP] Expression expected but opening brace ("{") found. 

próbowałem również załączenie szelki w "", podobnie jak

#define MyAppSetupQtDLLs "{#MyAppSetupDir}\DLLs" 

Ale tym razem mam

Error: Source file "D:\MyApp\setup\{#MyAppSetupDir}\DLLs\mstext35.dll" does not exist. 

Więc ISSP jest prawidłowo zastępując zmienną MyAppSetupDir, ale potem znowu stawia prosty tekst, jak gdyby nie uznają dyrektywę.

Szukałem wszędzie i już znalazłem discussion o używaniu {commonappdata}, ale nie mogłem znaleźć jak to zrobić, ani w dokumentacji, ani w KB. będę naprawdę wdzięczny kilka wskazówek, jak to wygląda jestem blisko, ale nie znalezienia właściwego rozwiązania ..

Odpowiedz

54
#define MyAppSetupDir "D:\MyApp\setup" 
#define MyAppSetupQtDLLs MyAppSetupDir + "\DLLs" 
+0

dzięki dużo Andreas !!!!!!!!!! – LittleFish

Powiązane problemy