web-dev-qa-db-ja.com

Inno Setup-#defineディレクティブ-以前に定義された変数の使用方法?

Inno Setupバージョン5.4.2を使用しています。

コピーするファイルのパスを定義したい(.dllなどの特殊ファイルに使用する、ベースパスとサブディレクトリ名の2つの部分として[Files]セクションのSource:パラメータ)。以下:

#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 はすでに見つかりましたが、ドキュメントでもKBでも、その方法を見つけることができませんでした。私は近くにいるように見えますが、適切な解決策を見つけられないので、いくつかのヒントを本当に感謝します。

42
LittleFish
#define MyAppSetupDir "D:\MyApp\setup"
#define MyAppSetupQtDLLs MyAppSetupDir + "\DLLs"
71