gpt4 book ai didi

installation - 如何将文件内容加载到 NSIS 中的变量/定义中?

转载 作者:行者123 更新时间:2023-12-04 22:13:59 25 4
gpt4 key购买 nike

我有一个在构建过程中读取的文件“releaseVersionNumber.txt”;目前它是为我的 Mac 版本读取的,但我想在我的 Windows NSIS 版本中读取它以减少编辑位置的数量(重复是邪恶的)...

所以我试图替换:

!define VERSION 1.2.3


FileOpen $4 "..\releaseVersionNumber.txt" r
FileRead $4 $1
FileClose $4
!define VERSION ${1}

但我收到一个错误 命令 FileOpen 在部分或函数之外无效 .将它包装在我产生的函数中 命令调用在部分或函数之外无效 所以我似乎无法在安装程序设置中执行此操作,只能在运行时执行此操作。

有没有办法实现我所追求的?!

最佳答案

所有以 ! 开头的命令是 compile time commands ,因此它们在编译时处理,远在您的程序运行之前。

  • 您可以尝试声明 VERSION作为 变量 而不是定义:
    Var VERSION
    FileOpen $4 "..\releaseVersionNumber.txt" r
    FileRead $4 $VERSION
    FileClose $4
  • 如果您需要 VERSION要定义的话,你可以试试/file !define 中的参数.
    !define /file VERSION "..\releaseVersionNumber.txt"
  • 我喜欢有一个 version.nsh文件只定义:
    !define VERSION "2013-03-25:16:23:50"

    然后,我包括它:
    !include /NONFATAL version.nsh
    # Default value in case no version.nsh is present
    !ifndef VERSION
    !define /date VERSION "%Y-%m-%d %H:%M:%S"
    !endif
  • 关于installation - 如何将文件内容加载到 NSIS 中的变量/定义中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15632188/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com