Inno Setup常数和参数

问题描述

我正在尝试向安装文件添加一个认值的参数。 在这种情况下,我会在

处遇到编译错误
OutputBaseFilename=MyApp {param:Version|{#MyAppVersion}} Setup

说:

[Setup]节指令“ OutputBaseFilename”的值无效

缩短的参考代码

#define MyAppName "My App"
#define MyAppVersion "1.7.24"

[Setup]
AppName={#MyAppName}
AppVersion="{param:Version|{#MyAppVersion}}"
DefaultGroupName=VHStudio
OutputBaseFilename=MyApp {param:Version|{#MyAppVersion}} Setup
SetupIconFile={#PathToRepoRoot}\Development\VHS\VHsstudio\media\logo.ico

[Icons]
Name: "{group}\VHStudio {param:version|MyAppVersion}"; Filename: "{app}\VHStudioApp.EXE"; WorkingDir: "{app}"
Name: "{group}\Uninstall VHStudio"; Filename: "{app}\unins000.exe"; WorkingDir: "{app}"
Name: "{userdesktop}\{#MyAppName}"; Filename: "{app}\VHStudioApp.EXE"; Tasks: desktopicon

我猜我在使用常量错误? 奇怪的是我做

AppVersion="{param:Version|{#MyAppVersion}}"

没有任何错误...

解决方法

基于马丁的评论。建议看看Passing in version number to Inno Setup compiler

原来,我把事情复杂化了。您可以轻松地将参数传递给编译器以获取预处理程序变量。在我的情况下,MyAppVersion

我在Inno Setup中所做的事情:

#ifndef MyAppVersion
  #define MyAppVersion "1.7.24"
#endif

并且在编译时如下所示: ISCC.exe myProg.iss /DMyAppVersion=1.7.14