我希望使用命令行构建Inno Setup脚本,并且希望将产品版本号作为参数传递。我正在尝试像这样实现它:
[setup]
VersionInfoVersion={param:version|0.0.0.0}
Run Code Online (Sandbox Code Playgroud)
但是,编译器会通知我这对于该指令无效。我已阅读本关于如何在自定义参数传递的命令行后,并假设我应该能够在像经过:
compil32 /cc "c:\isetup\samples\my script.iss" /version=1.0.0.0
Run Code Online (Sandbox Code Playgroud)
我也尝试了这篇文章中的建议,并尝试执行以下操作:
#define PathToMyBinary "C:\bin\x64\Release"
#define ApplicationVersion GetFileVersion('#PathToMyBinary\MyBinary.dll')
VersionInfoVersion={#ApplicationVersion}
Run Code Online (Sandbox Code Playgroud)
但是它似乎没有返回任何东西。这两种方法对我来说似乎都是有效的,所以我希望有人可以解释我要去哪里。
假设您通过预处理器变量定义版本,例如:
[Setup]
VersionInfoVersion={#ApplicationVersion}
Run Code Online (Sandbox Code Playgroud)
要在命令行上设置版本,您必须使用ISCC.exe命令行编译器及其/D开关:
ISCC.exe Example1.iss /DApplicationVersion=1.2.3.4
Run Code Online (Sandbox Code Playgroud)
要从二进制文件读取版本,请正确使用GetFileVersion预处理器功能。
但是您组成路径的语法是错误的。
正确的语法是PathToMyBinary + '\MyBinary.dll',例如:
#define PathToMyBinary "C:\bin\x64\Release"
#define ApplicationVersion GetFileVersion(PathToMyBinary + '\MyBinary.dll')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1498 次 |
| 最近记录: |