Performance problem in Vista Windows explorer if /SWAPRUN:NET is seton an executable.
I have rather big executables (about 25-35 MB). Because I want my
users to easily execute my application, I don't want them to install a
bunch of DLL's, just xcopy-install is OK for me (and my customers).
Because my software is often run from a network drive, and my
customers' networks are not always reliable, I link my executables
using the /SWAPRUN:NET option. This guarantees that the whole EXE is
loaded in memory before the application starts, and prevents crashes
if the network connection is dropped while my application is running.
This worked fine so far, BUT ... under Windows Vista, if a network
folder has lots of such executables (10, 50, 100, ...) then opening
this folder in the Windows explorer takes a lot of time (minutes!).
Especially, the visualization of the executables' icons takes a lot of
time. This problem did not appear on Windows XP.
Today, I found out that the problem is caused by the /SWAPRUN:NET
option. If I remove this linker option (or disable this flag with
EDITBIN), than the Vista Windows explorer immediately shows all icons.
Disabling this flag is not really an option (see reasons above).
Is there another way to tell Vista that it should not load the
complete executable file if it only needs to show the icon (or other
version information) in the explorer?