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?
This was confirmed by Microsoft to be a problem, but apparently it will not be solved. Only solution is to remove /SWAPRUN:NET.