InnoSetup在编译安装项目时似乎破坏了我的可执行文件。 执行源文件工作正常,但安装后执行文件会产生Win32错误1006“文件的卷已被外部更改”。
我尝试过禁用压缩并设置各种标志,但无济于事。
有没有人经历过这个?
更新
好的,情况有些曲折:
目前,我甚至可以手动将工作文件复制到其安装位置,并获取“文件卷...”。要明确:我卸载应用程序,创建相同的文件夹并将文件粘贴到那里并运行。
更新2
那些想要它的人的更多细节: InnoSetup脚本由FinalBuilder使用msbuild的输出编译,也由FinalBuilder执行,在我的机器上运行XP SP3。可执行文件是在配置Release | AnyCPU中编译的C#.Net程序集。该文件在安装脚本从中获取的文件夹中执行时有效。它在XP虚拟机上产生相同的行为。源文件和已安装文件的MD5哈希值相同。
答案 0 :(得分:16)
好的,我刚收到同样的错误。我有一个我的可执行文件使用的配置。我查看了我的文件夹一百万次 - 但最后注意到配置文件的长度为零。我更正了配置并且错误停止了。
首先检查一下最简单的事情...好明天!
答案 1 :(得分:3)
ERROR_FILE_INVALID 1006(0x3EE):文件的卷已经外部更改,因此打开的文件不再有效。
我怀疑在将文件移动到网络共享后出现此问题。在我看来,正在发生的事情是你有一个打开的文件句柄 - 可能是你正在创建的临时文件 - 然后一些其他进程(可能在不同的主机上运行)出现并重命名或删除该文件或其'父目录树。
所以我的建议是:
答案 2 :(得分:1)