Windows 10 NSIS 脚本版本字符串操作
Windows 10 NSIS script Version string Manipulation
我正在尝试让我的 NSIS 安装程序需要设置以下项目。但是,版本号必须采用 X.X.X.X 格式(不允许使用破折号)。我的版本号目前以 X.X.X-rXXXX 的形式传递给我,我如何让 nsis 将形式为 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"
首先,我将解释 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}"
我正在尝试让我的 NSIS 安装程序需要设置以下项目。但是,版本号必须采用 X.X.X.X 格式(不允许使用破折号)。我的版本号目前以 X.X.X-rXXXX 的形式传递给我,我如何让 nsis 将形式为 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"
首先,我将解释 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}"