2013-01-07 84 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或其他本地目錄。