VS2010和VS2008使用不同编译方式在64位机器生成注册表对比
最近写一个小工具用到了使用C#来进行注册表的操作,使用C#来进行注册表的操作需要引入命名空间Microsoft.Win32,关于操作注册表的帮助类可以参考RegHelper.cs。下面分别使用VS2010和VS2008使用Any CPU、X64、X86和Itanium进行编译,运行在32位机器和64位机器进行对比。看下面一段代码:
string subkey = @"software\FW\UserInfo"; RegHelper reg = new RegHelper(subkey, RegDomain.LocalMachine); reg.CreateSubKey(subkey); 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 |
微信公众号:不止dotNET
作者: oec2003
出处: http://oec2003.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则 保留追究法律责任的权利。
作者: oec2003
出处: http://oec2003.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则 保留追究法律责任的权利。