我已经使用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
结果是app.1.0.1.781.x64.exe
由Inno Setup创建的,所以我正在寻找一种切断最后一个版本组件-的方法.781
。到目前为止,我还没有弄清楚如何为此目的调用脚本函数。我可以在[Code]
节中添加函数,但是它将在节之后定义[Setup]
,显然不能在[Setup]
节中调用?
是否有可能修改的值AppVersion
,并OutputBaseFilename
在帕斯卡尔脚本,例如InitializeSetup()
?
您可以使用GetVersionComponents
预处理器功能(ParseVersion
在Inno Setup 6.1之前):
#define AppVerText() \
GetVersionComponents('..\app\bin\Release\app.exe', \
Local[0], Local[1], Local[2], Local[3]), \
Str(Local[0]) + "." + Str(Local[1]) + "." + Str(Local[2])
然后,您可以在您的[Setup]
部分中使用它:
AppVersion={#AppVerText}
您也可以将其用于OutputBaseFilename
:
OutputBaseFilename=app.{#AppVerText}.x64
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句