2010-02-08 5 views
2

У меня возникли проблемы с использованием макросов в моем .inf-файле, который я использую для создания моей кабины, особенно при настройке строки InstallDir. Если я сделаю что-то вроде этого:Ошибка установки файла cab на Windows CE

InstallDir=\<PathToProgramFiles>\MyAppName 

тогда все работает нормально. Однако, если я делаю это:

InstallDir=%CE1%\MyAppName 

тогда я получаю следующее сообщение об ошибке при попытке установить кабину (дважды нажав на моем устройстве): «MyAppName не был успешно установлен Пожалуйста, запустите программу установки еще раз.»

Это похоже только на встроенные макросы. Я без проблем могу использовать %AppName%. Может быть, есть какой-то параметр реестра, который неправильно установлен, который обычно разрешает макрос %CE1%?

Любые идеи о том, что происходит?

Редактировать: Мое устройство не имеет каталога \Program Files. Кажется, что макрос %CE1% всегда разрешает этот путь, и если InstallDir, указанный в inf-файле, не существует (за исключением последней части каталога, тогда установка завершилась неудачно. В ручном создании \Program Files исправлена ​​проблема. Поскольку многие устройства Я работаю с разными путями для своего каталога Program Files, есть ли общий способ установить установщик по умолчанию в фактический файл Program Files? Я полагаю, что мой единственный другой вариант - не указывать путь и принуждать пользователя выбирать один?

ответ

1

во-первых, в this ссылке вы можете найти ярлыки и их значение (% C ..%), Гото приложение B. The Windows CE5 MSDN ссылку.

вы можете добавить Setup Dll к вашей установке CAB, которая проверит структуру каталогов и создаст папку в случае, если она не существует. Вы можете найти this SO вопрос полезный.

Предупреждение: Если вы ориентируетесь на обычные устройства Windows CE, остерегайтесь места, где вы размещаете файлы, как это может быть в файловой системе на основе ОЗУ, а затем файлы будут исчезать после перезагрузки.

+0

Спасибо за информацию. Я думаю, что моя проблема заключается в том, что в конечном счете макросы, как они определены, предназначены для использования в целях локализации, а не для поиска реального пути (например, SHGetSpecialFolder()). Я думаю, что мне в конечном итоге придется создать собственный установщик, который правильно справится с этими различиями. Он не похож на настраиваемую DLL-конфигурацию, которая позволит мне настроить путь установки ... – Jason

Смежные вопросы