我正在尝试让我的NSIS安装程序需要设置以下项目。但是,版本号必须采用X.X.X.X格式(不允许使用短划线)。我的版本号目前以X.X.X-rXXXX的形式传递给我,我如何将X.X.X-rXXXX形式的版本号转换为nsis所需的X.X.X.X格式?
VIProductVersion "3.6.0.rXXXXX"
VIAddVersionKey "ProductName?" "Witchcraft"
VIAddVersionKey "CompanyName?" "Witchcraft, LLC"
VIAddVersionKey "LegalCopyright?" "Copyright (c) 2015 Witchcraft, LLC"
VIAddVersionKey "FileDescription?" "Witchcraft"
VIAddVersionKey "FileVersion?" "3.6.0.0"
VIAddVersionKey "ProductVersion?" "3.6.0.0"
答案 0 :(得分:2)
首先,我将解释X.X.X.X限制的来源。 VIProductVersion
属性在版本信息资源中的VS_FIXEDFILEINFO块中设置版本号,并且必须是4个16位数字。
VIAddVersionKey
添加一个字符串,名称和值可以是您想要的任何内容,但Microsoft可能希望包含一些名称(它们列在NSIS帮助文件中)。
您可以使用!searchreplace
和!searchparse
预处理器指令在编译时修改字符串:
!define VERSION "3.6.0-r12345" # This could be passed in with 'makensis /DVERSION=3.6.0-r12345 setup.nsi' etc
!searchreplace /ignorecase VERSION_NUMBERSONLY "${VERSION}" "r" ""
!searchreplace /ignorecase VERSION_NUMBERSONLY "${VERSION_NUMBERSONLY}" "-" "."
VIProductVersion "${VERSION_NUMBERSONLY}"
VIAddVersionKey "FileVersion" "${VERSION}"
VIAddVersionKey "ProductVersion" "${VERSION}"