我的可执行文件相当大(大约 25-35 MB)。因为我希望用户能够轻松执行我的应用程序,所以我不希望他们安装一堆 DLL,对于我(和我的客户)来说,xcopy-install 就足够了。因为我的软件经常从网络驱动器运行,而客户的网络并不总是可靠的,所以我使用 /SWAPRUN:NET 选项链接我的可执行文件。这可以保证在应用程序启动之前将整个 EXE 加载到内存中,并防止在应用程序运行时网络连接断开时崩溃。
到目前为止,这都运行良好,但是...在 Windows Vista 下,如果网络文件夹包含大量此类可执行文件(10、50、100……),则在 Windows 资源管理器中打开此文件夹会花费大量时间(几分钟!)。尤其是可执行文件图标的可视化会花费大量时间。此问题在 Windows XP 上没有出现。
今天,我发现问题是由 /SWAPRUN:NET 选项引起的。如果我删除此链接器选项(或使用 EDITBIN 禁用此标志),Vista Windows 资源管理器会立即显示所有图标。禁用此标志实际上不是一个选项(请参阅上述原因)。
是否有其他方法可以告诉 Vista,如果它只需要在资源管理器中显示图标(或其他版本信息),它就不应该加载完整的可执行文件?
答案1
微软已确认这是一个问题,但显然不会解决。唯一的解决办法是删除 /SWAPRUN:NET。