Vista中的性能问题如果/ SWAPRUN:NET设置为可执行文件,则为Windows资源pipe理器

我有相当大的可执行文件(大约25-35 MB)。 因为我希望我的用户能够轻松地执行我的应用程序,所以我不希望他们安装一堆DLL,只需要xcopy-install对我(和我的客户)即可。 由于我的软件通常是从networking驱动器运行的,而我的客户的networking并不总是可靠的,所以我使用/ SWAPRUN:NET选项链接我的可执行文件。 这可以确保在应用程序启动之前将整个EXE加载到内存中,并且可以防止在应用程序运行时networking连接断开的情况下发生崩溃。

这工作得很好,但是…在Windows Vista下,如果一个networking文件夹有很多这样的可执行文件(10,50,100,…),那么在Windows资源pipe理器中打开这个文件夹需要很多时间(几分钟! )。 特别是,可执行文件的图标的可视化花费了大量的时间。 Windows XP上没有出现此问题。

今天,我发现问题是由/ SWAPRUN:NET选项造成的。 如果我删除这个链接器选项(或者用EDITBIN禁用这个标志),Vista的资源pipe理器会立即显示所有的图标。 禁用这个标志不是一个真正的select(见上面的原因)。

有没有另一种方式告诉Vista,如果只需要在浏览器中显示图标(或其他版本信息),就不应该加载完整的可执行文件?

这被微软证实是一个问题,但显然它不会被解决。 唯一的解决办法是删除/ SWAPRUN:NET。