VS2010和VS2008使用不同編譯方式在64位機器生成註冊表對比

最近寫一個小工具用到了使用C#來進行註冊表的操作,使用C#來進行註冊表的操作需要引入命名空間Microsoft.Win32,關於操作註冊表的幫助類可以參考RegHelper.cs。下面分別使用VS2010和VS2008使用Any CPU、X64、X86和Itanium進行編譯,運行在32位機器和64位機器進行對比。看下面一段代碼:

  1. string subkey = @"software\FW\UserInfo";  
  2. RegHelper reg = new RegHelper(subkey, RegDomain.LocalMachine);  
  3. reg.CreateSubKey(subkey);  
  4. Console.ReadLine(); 

上面代碼的本意是在註冊表中創建HKEY_LOCAL_MACHINE\SOFTWARE\FW\UserInfo 節點,在32位機器中沒有什麼問題,可以正常的生產節點,但在64位機器上,不同的VS版本,使用不同的編譯模式,會產生不一樣的結果。

項目類型 VS版本 目標平臺 機器位數 節點路徑
控制檯項目 VS2008 Any CPU 64 HKEY_LOCAL_MACHINE\SOFTWARE\FW\UserInfo
X86 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FW\UserInfo
X64 HKEY_LOCAL_MACHINE\SOFTWARE\FW\UserInfo
VS2010 Any CPU HKEY_LOCAL_MACHINE\SOFTWARE\FW\UserInfo
X86 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FW\UserInfo
X64 HKEY_LOCAL_MACHINE\SOFTWARE\FW\UserInfo
網站項目 VS2008 Any CPU HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FW\UserInfo
X86 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FW\UserInfo
X64 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FW\UserInfo
VS2010 Any CPU HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FW\UserInfo
X86 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FW\UserInfo
X64 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FW\UserInfo
WinForm項目 VS2008 Any CPU HKEY_LOCAL_MACHINE\SOFTWARE\FW\UserInfo
X86 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FW\UserInfo
X64 HKEY_LOCAL_MACHINE\SOFTWARE\FW\UserInfo
VS2010 Any CPU HKEY_LOCAL_MACHINE\SOFTWARE\FW\UserInfo
X86 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FW\UserInfo
X64 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\FW\UserInfo
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章