2013-01-07 86 views
2

运行脚本以创建NSIS安装程序时,出现一个我找不到的错误。脚本复制创建安装程序所需的文件,然后调用makensis来构建setup.exe。在安装程序编译期间打开文件时出错

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

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

它可靠地上失败即5个目录从用于包括目录结构中的File /r命令深的特定文件。总路径长度为180个字符,因此它不是很长。

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

我已经使用Process Monitor来监视目录中文件的使用情况,并且在复制完成后没有任何文件正在打开。

任何想法如何解决这个问题?

+0

失败的实际路径也是相对路径吗? – Anders

+0

@Anders是的,失败的路径是一个相对路径,并且它的移动量与上面相同 - '.. \ .. \ .. \' – davisoa

回答

5

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

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

+0

您是对的 - 完整路径大于MAX_PATH,并且导致失败。当我缩短当前目录时,一切都很好。 – davisoa

0

我得到相同的错误,并且完整的路径为< 260个字符。

问题

文件:打开失败文件 “\ FolderShare的\ XYZSRelease \ XYZV1.2.2 \ AutoCompleteMenu.dll” 错误的脚本 “C:\ TFS \ XYZProject \发布\ NullsoftInstaller \ XYZWin7Installer.nsi”上线77 - 中止创作过程

原因

出于某种原因,当这些文件上的文件夹共享它不工作(我肯定这是一个改变企业网络环境)为它以前在工作。

解决方案

把所有的文件C:\ TEMP或其他本地目录。