gpt4 book ai didi

windows - NSIS - 当路径太长时,EnvVarUpdate 会覆盖系统路径,是否有解决方法?

转载 作者:可可西里 更新时间:2023-11-01 14:36:03 24 4
gpt4 key购买 nike

这是我的简单代码:

!include "EnvVarUpdate.nsh"

Outfile "text.exe"

Section

${EnvVarUpdate} $0 "PATH" "A" "HKLM" "C:\Program Files\something"

SectionEnd

我知道“A”参数意味着这应该将最后一个参数附加到系统路径。但是,对此进行测试表明它覆盖了我的 Path 变量。进一步的测试表明这是因为 Path 太长(>1024 个字符,根据教程)。

那么有没有一种“安全”的方式来追加到 Path 上呢?我正在寻找一个函数,如果 Path 足够短,它将追加,否则什么都不做并报告错误,诸如此类。我想知道是否已经存在执行此操作的标准方法。谢谢!

最佳答案

由于默认字符串管理限制为 1024 字节,并且路径修改中涉及的字符串操作会将字符串截断为 1024,这有时会破坏工作站环境(尤其是在安装了许多工具的开发主机中)。顺便说一句,在野外有许多 nsis 内置设置都遇到了这个问题。

我们正在使用从 Path manipulationAddToPath 函数派生的一些不同代码但问题仍然相似。

到目前为止,我们使用的最佳解决方法是使用 NSIS 的特殊构建,它提供大字符串支持(8kB 而不是 1kB)。该版本在 special builds page 中可用NSIS 维基的。

关于windows - NSIS - 当路径太长时,EnvVarUpdate 会覆盖系统路径,是否有解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21897103/

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