我有一个编译好的程序,被压缩后运行良好,使用U盘复制到另一台计算机,提取并运行。
但是,如果我将压缩文件上传到Google Drive或Dropbox,然后下载并解压,程序将无法运行。它给我一个错误"program.exe已停止工作“。
使用一个名为WinMerge的工具,我将从U盘中提取的程序与下载后提取的程序进行了比较。每个文件,包括二进制和文本,都是相同的。
接下来,我在两个文件夹中的每个程序文件上使用attrib -r -a -s -h,认为其中一个文件属性可能是不正确的。我仍然有同样的问题;复制的程序可以工作,下载的程序不能。
我还尝试更改程序所在文件夹的名称和位置,但没有效果。
我能想到的唯一一件事就是Windows给从互联网下载的文件添加一些额外的属性,以可能触发额外的UAC检查,这会干扰程序。这真的存在吗?
这是在Windows7上。
发布于 2016-01-09 07:44:10
找到了问题所在。Windows向从internet下载的每个文件添加备用数据流(ADS)。由于某些原因,这些流阻止了程序的运行。从每个文件中剥离广告可以让它运行。
我使用了一个名为Streams的Windows Sysinternals程序来剥离广告数据。
https://stackoverflow.com/questions/34687248
复制相似问题