【问题标题】:Error opening file during Installer Compilation安装程序编译期间打开文件时出错
【发布时间】:2021-05-19 22:46:06
【问题描述】:

在运行脚本来创建 NSIS 安装程序时,我遇到了一个我无法弄清楚的错误。该脚本复制创建安装程序所需的文件,然后调用makensis 来构建 setup.exe。

在使用 makensis 进行编译期间,尝试包含在调用 makensis 之前复制的目录结构时出现错误。

错误是:File: failed opening file "..\..\..\My\Long\Path\Name\To\File.ext"

它在距离用于包含目录结构的File /r 命令深 5 个目录的特定文件上可靠地失败。总路径长度为 180 个字符,因此不会太长。

即使在重新启动或删除并重新创建整个目录结构后,此错误仍然存​​在。更糟糕的是,它在另一台机器上运行良好。

我已经使用进程监视器查看了目录中文件的使用情况,复制完成后没有任何东西在打开文件。

知道如何解决这个问题吗?

【问题讨论】:

  • 失败的实际路径也是相对路径吗?
  • @Anders 是的,失败的路径是相对路径,它向上移动的量与上面相同 - `..\..\..`

标签: nsis


【解决方案1】:

完整路径(当前目录 + 相对路径)必须小于 260 个字符。

您确定您的进程监视器过滤器是正确的,应该采取某种类型的操作然后失败?如果CreateFile 失败,则会打印“文件:打开文件失败”消息...

【讨论】:

  • 你是对的 - 完整路径大于 MAX_PATH,导致失败。当我缩短当前目录时,一切都很好。
【解决方案2】:

我遇到了同样的错误,完整路径是

问题

文件:打开文件“\FOLDERSHARE\XYZSRelease\XYZV1.2.2\AutoCompleteMenu.dll”失败 第 77 行的脚本“C:\TFS\XYZProject\Releases\NullsoftInstaller\XYZWin7Installer.nsi”出错——正在中止创建过程

原因

由于某些原因,当文件位于文件夹共享上时,它无法正常工作(我很肯定这是对公司网络环境的更改),因为它以前可以正常工作。

解决方案

将所有文件放在 C:\Temp 或其他本地目录中。

【讨论】:

    猜你喜欢
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-02
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    相关资源
    最近更新 更多