我已经使用 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
Run Code Online (Sandbox Code Playgroud)
结果是app.1.0.1.781.x64.exe由 Inno Setup 创建的,所以我正在寻找一种方法来切断最后一个版本组件 - .781. 到目前为止,我还没有弄清楚如何为此目的调用脚本函数。我可以在节中添加函数[Code],但它将在节之后定义[Setup],并且显然不能在[Setup]节中调用?
是否可以修改Pascal 脚本中的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])
Run Code Online (Sandbox Code Playgroud)
然后您可以在您的部分中使用它[Setup]:
AppVersion={#AppVerText}
Run Code Online (Sandbox Code Playgroud)
您也可以使用它OutputBaseFilename:
OutputBaseFilename=app.{#AppVerText}.x64
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
290 次 |
| 最近记录: |