Inno setup 如何在Inno设置中仅将三部分文件版本(无第四版本号)包含在AppVersion值中

Inno setup 如何在Inno设置中仅将三部分文件版本(无第四版本号)包含在AppVersion值中,inno-setup,Inno Setup,我已经使用Inno setup 6.0为Windows桌面WPF/C应用程序创建了安装程序,运行良好。只是一个小的装饰性问题-我想使用“语义版本”。Windows中的版本号有四个组件,major.minor.build.revision,但我想展示major.minor.patch。第四个组件将由CI使用,与用户无关。在当前脚本中,我有以下内容: #define AppVersion GetFileVersion("..\app\bin\Release\app.exe") .

我已经使用Inno setup 6.0为Windows桌面WPF/C应用程序创建了安装程序,运行良好。只是一个小的装饰性问题-我想使用“语义版本”。Windows中的版本号有四个组件,
major.minor.build.revision
,但我想展示
major.minor.patch
。第四个组件将由CI使用,与用户无关。在当前脚本中,我有以下内容:

#define AppVersion GetFileVersion("..\app\bin\Release\app.exe")
... which later gets used as:
[Setup]
AppVersion=AppVersion
OutputBaseFilename=app.{#AppVersion}.x64
结果是Inno Setup创建了
app.1.0.1.781.x64.exe
,因此我正在寻找一种方法来切断最新版本的组件-
.781
。到目前为止,我还没有弄清楚如何为此调用脚本函数。我可以在
[code]
节中添加函数,但它将在
[Setup]
节之后定义,显然不能在
[Setup]
节中调用

是否可以在Pascal脚本中修改
AppVersion
OutputBaseFilename
的值,例如在
InitializeSetup()

中,您可以使用(
ParseVersion
在Inno Setup 6.1之前):

然后您可以在
[设置]
部分中使用此选项:

AppVersion={#AppVerText}
您也可以将其用于
OutputBaseFilename

OutputBaseFilename=app.{#AppVerText}.x64
OutputBaseFilename=app.{#AppVerText}.x64