Forge, API и программирование – Русский – только для чтения
Задавайте вопросы и делитесь знаниями по Autodesk Forge и программированию на API программного обеспечения Autodesk
отмена
Отображаются результаты для 
Показать  только  | Вместо этого искать 
Вы имели в виду: 

Инсталлятор не находит запись AutoCAD в ветке HKEY_LOCAL_MACHINE.

3 ОТВЕТ 3
Ответить
Сообщение 1 из 4
Anonymous
1197 просмотров, 3 ответов

Инсталлятор не находит запись AutoCAD в ветке HKEY_LOCAL_MACHINE.

========================

Win 7 Ultimate x64 SP1 Rus;

MS VS 2010 SP1 Rus;

AutoCAD 2009 x64 SP3 Enu;

(см. P.S. в конце топика)

========================

Средствами указанной IDE, на основе шаблона "Проект установки" написал инсталлятор для своей программы. В инсталляторе прописал проверку наличия на локальной машине указанной выше версии AutoCAD. Если искомый софт отсутствует - отказаться от инсталляции, сообщив пользователю о том, что нужная версия AutoCAD отсутствует.

 

Изначально я хотел проверять наличие раздела HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R17.2\ACAD-7001:409, а не HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R17.2\ACAD-7001:409 по вполне понятным причинам: текущий юзер мог ещё ни разу не запускать AutoCAD, в следствии чего в профиле пользователя отсутствовал бы проверяемый раздел.

 

Раздел HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R17.2\ACAD-7001:409 на компьютере присутствует:

 

20.03-1.png

 

В инсталляторе прописал следующее:

 

20.03.png

 

Условие запуска для указанного выше поиска выглядит так:

 

20.03-2.png

 

Компилирую инсталлятор и запускаю его - получаю сообщение, что на компьютере не установлен AutoCAD 2009. 

Пробую искать в реестре другую запись, причём не из раздела HKEY_LOCAL_MACHINE, а из HKEY_CURRENT_USER, например такую:

 

20.03-3.png

 

Т.о. запись поиска будет выглядеть так:

 

20.03-4.png

 

Компилирую инсталлятор и запускаю его - запись в реестре прекрасно находится и процесс установки успешно происходит, но... Как я уже писал выше - проверять, установлен ли AutoCAD нужно в разделе HKEY_LOCAL_MACHINE, а не в HKEY_CURRENT_USER и объяснил почему. 

 

Проверяю, будет ли найдена в ветке  HKEY_LOCAL_MACHINE запись для другого, произвольно взятого приложения:

 

2003.png

 

Ветка была успешно найдена и инсталлятор отработал как полагается. 

 

Написал тестовое консольное приложение и в нём, через RegistryKey проверил, нет ли проблем с доступом к нужной мне записи AutoCAD в HKEY_LOCAL_MACHINE (хотя и так знаю, что нет, т.к. ранее это делал неоднократно) - запись прекрасно находится и считывается. 

 

Вопрос: почему инсталлятор не находит запись для AutoCAD в ветке HKEY_LOCAL_MACHINE?

 

P.S. На работе проделывал аналогичные манипуляции с Win XP SP3 Rus x86; AutoCAD 2009 SP3 Enu x86; MS VS 2010; - результат такой же.

3 ОТВЕТ 3
Сообщение 2 из 4
Anonymous
в ответ: Anonymous

Примечание вдогонку - пишу код, и тестирую - с правами обычного пользователя. Т.о. все выше указанные операции выполняю как рядовой юзер (никаких особых дополнительных прав нет). Данный инсталлятор должен устанавливаться обычным пользователем с его урезанными правами (заказ нашего IT-отдела) - не хотят они его автоматом раскатывать всем юзерам домена, хотят, чтобы те сами себе его устанавливали, скачав из серверного репозитория.

Сообщение 3 из 4
Anonymous
в ответ: Anonymous

Забыл показать ещё одну важную настройку, которую, тем не менее, так же устанавливаю под нужную платформу:

 

20.03-5.png

Сообщение 4 из 4
Anonymous
в ответ: Anonymous

Тему можно закрывать. Нужно было сделать так:

 

20.03-6.png

 

Ответ был найден Modis'ом в блоге KEAN WALMSLEY здесь. Спасибо Modis! Подмигивающий

Не нашли то, что искали? Задайте вопросы в сообществе или поделитесь своими знаниями.

Новая тема  

Autodesk Design & Make Report