2011-12-15 5 views
1

XPからWin7にNSISインストールスクリプトを更新する途中です。 Win7、Administratorとして実行している場合、不明な理由によりインストーラはレジストリに書き込むことができません。インストーラの埋め込みUACマニフェストは、(スクリプトでRequestExecutionLevel adminを指定することによって)管理者権限を必要とするように設定されています。また、私はインストーラを右クリックし、を実行して、管理者として実行しようとしました。 OSでUACを無効にしても問題は解決されません。NSIS:Windows 7でレジストリ(HKLM Software ...)に書き込むことができません

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を実行しています。

+0

あなたはv2.46を試してみましたか?このWin7 x86またはx64ですか? – Anders

答えて

2

SetRegViewを使用して、x64の「実際の」HKLM\Softwareキーに書き込みます。他のレジストリの書き込みの問題を調査する

使用Process Monitor ...

+1

64ビットWin7を実行しています。ええ、それは値がレジストリに書き込まれたことが判明しましたが、Wow6432Nodeブランチの下にあります。私は、64ビットマシン上の32ビットアプリケーション用に別個のレジストリブランチがあることは知らなかった。 Takkがhjelpenのために!! – kashiraja

関連する問題