2011-12-15 2 views
1

XP에서 Win7로 NSIS 설치 스크립트를 업데이트하는 중입니다. 알려지지 않은 이유 때문에 Win7에서 관리자 인 경우에도 설치 프로그램이 레지스트리에 쓸 수 없습니다. 설치 관리자의 포함 된 UAC 매니페스트는 관리자 권한을 필요로하도록 설정됩니다 (스크립트에서 RequestExecutionLevel admin 지정). 또한 설치 프로그램을 마우스 오른쪽 버튼으로 클릭하고 관리자로 실행을 시도했습니다. OS에서 UAC를 끄지 않아도 문제가 해결되지 않습니다.NSIS : Windows 7에서 레지스트리 (HKLM Software ...)에 쓸 수 없습니다.

XP에서 같은 설치 관리자를 실행할 때 레지스트리 키는 다음과 같이 작성됩니다. 단지 관리자가 쓰기 권한이 ((\ 경우 ProgramData 예를 들어 C), I는 제한된 폴더에 쓸 수 있어요 한편

!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 

:

나는 문제를 분리하려고 내 설치 스크립트를 쌍 기본적으로 여기에 있음). 여기에 정말 분명한 것을 놓치고 있습니까? NSIS 2.45 실행.

+0

당신은 v2.46을 시도 했습니까? 이 Win7 x86 또는 x64입니까? – Anders

답변

2

SetRegView을 사용하여 x64의 "실제"HKLM\Software 키에 쓸 수 있습니다. 다른 레지스트리 쓰기 문제를 조사하기 위해

사용 Process Monitor ...

+1

64 비트 Win7 실행. 예, 값이 레지스트리에 기록되었지만 Wow6432Node 브랜치에서는 나타납니다. 필자는 64 비트 컴퓨터에서 32 비트 응용 프로그램을위한 별도의 레지스트리 분기가 있다는 것을 알지 못했습니다. hjelpen를위한 Takk !! – kashiraja

관련 문제