title: Inno Setup - #define directive - how to use previously defined variable?
body: <p>I am using Inno Setup version 5.4.2.</p>
  
  <p>I want to define the path for the files to copy (the Source: parameter in the [Files] section as two parts, a base path and sub-directory names, that I use for special files (like .dlls).
  I have tried the following:</p>
  
  <pre><code>#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
  </code></pre>
  
  <p>but I get the following compilation error</p>
  
  <pre><code>[ISPP] Expression expected but opening brace ("{") found.
  </code></pre>
  
  <p>I also tried to enclose the braces in "", like</p>
  
  <pre><code>#define MyAppSetupQtDLLs "{#MyAppSetupDir}\DLLs"
  </code></pre>
  
  <p>But this time I got</p>
  
  <pre><code>Error: Source file "D:\MyApp\setup\{#MyAppSetupDir}\DLLs\mstext35.dll" does not exist.
  </code></pre>
  
  <p>So, ISSP is correctly replacing the MyAppSetupDir variable, but then puts again the simple text, as if it did not recognize the directive.</p>
  
  <p>I have searched everywhere, and I already found a <a href="https://stackoverflow.com/questions/5043960/how-to-set-ispp-defines-based-on-default-inno-setup-variables">discussion</a> about using the <code>{commonappdata}</code>, but I could not find how to do this, neither in the documentation nor in the KB.
  I would really appreciate some hints, as it looks I am close, but not finding the right solution..</p>