Ограничения InstallScript (FILE_EXISTS, имя файла)?

Мой проект InstallScript 2014 устанавливает наше приложение на настольный ПК или встроенный ПК, управляющий промышленным прибором. Единственный способ узнать разницу — это наличие на встроенном ПК уникального драйвера USB-устройства, который используется для включения передней панели прибора — очевидно, что на рабочем столе передней панели нет.

Код InstallScript говорит

if (IS(FILE_EXISTS, "c:\\windows\\system32\\mydriver.sys")) then
    do instrument stuff
else
    do desktop stuff
endif;

Файл находится на жестком диске прибора в папке windows\system32, однако функция IS всегда возвращает значение false.

Я не понимаю, почему это может потерпеть неудачу. Сам установщик работает с повышенными привилегиями, но просмотр содержимого Win\Sys32 не требует каких-либо специальных разрешений - я могу просмотреть файл с помощью проводника Windows.

Что мне не хватает?


person bo gusman    schedule 26.09.2016    source источник


Ответы (1)


По-видимому, на уровне файловой системы существует «магия», которая перенаправляет запросы между различными каталогами в 64-битной системе Windows.

Кажется, что все, что нужно сделать, это

Disable(WOW64FSREDIRECTION);
do stuff
Enable(WOW64FSREDIRECTION);

См. Нацеливание на 64-разрядные операционные системы с помощью установки InstallScript.

person bo gusman    schedule 27.09.2016