2017年3月6日月曜日

[.NET, C#]レジストリの値が取得できない原因

[HKEY_LOCAL_MACHINE]に登録した値が参照できない場合がありました。
その対策について、まとめてみました。

1、Visual Studioのビルドの設定
「32ビットの優先」のチェックをはずす。
下の赤枠でチェックをついているのをはずします。


2、レジストリの登録
64bitマシンだと参照先が異なるようです。
Wow6432Nodeのサブディレクトリにも値を設定します。

例えば、[HKEY_LOCAL_MACHINE\SOFTWARE\TA][HKEY_LOCAL_MACHINE\Software\Wow6432Node\TA]にTestFileの参照先に"TestFile"="C:\\\\\\\\Source\\\\\\\\_Setting\\\\\\\\TestFile.xml"を設定する例です。

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\TA]
@=""
"TestFile"="C:\\\\\\\\Source\\\\\\\\_Setting\\\\\\\\TestFile.xml"
[HKEY_LOCAL_MACHINE\Software\Wow6432Node\TA]
@=""
"TestFile"="C:\\\\\\\\Source\\\\\\\\_Setting\\\\\\\\TestFile.xml"

【参考URL】
http://wannabe-note.com/1317
http://www.atmarkit.co.jp/fdotnet/dotnettips/118regget/regget.html
http://d.hatena.ne.jp/tt_clown/20100331/1270016634

1 件のコメント:

  1. まさにHKEY_LOCAL_MACHINE下の設定が読み込めなくて困っていました。
    ありがとうございます。

    返信削除