Назад | Перейти на главную страницу

Проблема с производительностью в Vista Windows Explorer, если / SWAPRUN: NET установлен для исполняемого файла

Имею довольно большие исполняемые файлы (порядка 25-35 МБ). Поскольку я хочу, чтобы мои пользователи легко выполняли мое приложение, я не хочу, чтобы они устанавливали кучу DLL, просто xcopy-install подходит для меня (и моих клиентов). Поскольку мое программное обеспечение часто запускается с сетевого диска, а сети моих клиентов не всегда надежны, я связываю свои исполняемые файлы с помощью параметра / SWAPRUN: NET. Это гарантирует, что весь EXE-файл загружается в память до запуска приложения, и предотвращает сбои, если сетевое соединение разрывается во время работы моего приложения.

Пока это работало нормально, НО ... под Windows Vista, если в сетевой папке много таких исполняемых файлов (10, 50, 100, ...), то открытие этой папки в проводнике Windows занимает много времени (минут! ). Особенно много времени занимает визуализация значков исполняемых файлов. Эта проблема не возникала в Windows XP.

Сегодня я узнал, что проблема вызвана параметром / SWAPRUN: NET. Если я удалю эту опцию компоновщика (или отключу этот флаг с помощью EDITBIN), то обозреватель Windows Vista немедленно отобразит все значки. Отключение этого флага на самом деле не вариант (см. Причины выше).

Есть ли другой способ сообщить Vista, что она не должна загружать исполняемый файл целиком, если в проводнике должен отображаться только значок (или другая информация о версии)?

Microsoft подтвердила, что это проблема, но, по-видимому, она не будет решена. Единственное решение - удалить / SWAPRUN: NET.