2011-10-29 109 views
34

我正在使用Inno Setup版本5.4.2。Inno Setup - #define指令 - 如何使用以前定義的變量?

我想要定義要複製的文件的路徑([Files]部分中的Source:參數,分爲兩部分,一個基本路徑和子目錄名稱,用於特殊文件(如.dlls) 。 我曾嘗試以下:

#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 

,但我得到以下編譯錯誤

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

我也試圖括在 「」 大括號,如

#define MyAppSetupQtDLLs "{#MyAppSetupDir}\DLLs" 

但是這一次我

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

所以,ISSP正確地更換MyAppSetupDir變量,但隨後又提出了簡單的文字,彷彿它不承認該指​​令。

我到處搜索過,並且我已經找到了有關使用{commonappdata}discussion,但我無法在文檔或知識庫中找到如何執行此操作的信息。 我真的很感激一些線索,因爲它看起來我很接近,但沒有找到合適的解決方案..

回答

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

非常感謝安德烈亞斯!!!!!!!!!! – LittleFish