NSIS: невозможно записать в реестр (HKLM \ Software \ ...) в Windows 7 - PullRequest
1 голос
/ 15 декабря 2011

Я в процессе обновления сценария установки NSIS с XP на Win7. По неизвестным причинам установщик не может записать в реестр, если работает под Win7, даже как администратор. Для встроенного манифеста UAC в программе установки требуются права администратора (указав в сценарии RequestExecutionLevel admin ). Также я попытался щелкнуть правой кнопкой мыши установщик и выбрать Запуск от имени администратора . Отключение UAC в ОС также не решает проблему.

Когда я запускаю тот же установщик под XP, ключ реестра записывается так, как и должно быть.

Я спарил свой скрипт установки, чтобы попытаться изолировать проблему:

!define APP_NAME      "MyTestApp"

Name                  "${APP_NAME}"
OutFile               "${APP_NAME} Setup.exe"

RequestExecutionLevel admin
Page instfiles

Section -Core
   SetDetailsView show 

   WriteRegStr HKLM "Software\XyzCompany\${APP_NAME}\Installation" "VersionString" "V0.0.0"

   SetAutoClose false
SectionEnd

С другой стороны, я могу писать в ограниченные папки (например, C: \ ProgramData) (только администратор имеет доступ на запись по умолчанию здесь). Я что-то упускаю из виду? Запуск NSIS 2.45.

1 Ответ

3 голосов
/ 15 декабря 2011

Используйте SetRegView для записи в "настоящий" ключ HKLM\Software на x64.

Используйте Process Monitor для исследования других проблем записи реестра ...

...