从32位开发到64位开发,需要澄清.net框架和平台

hom*_*347 3 .net x86-64 32bit-64bit

快速背景:我在Vista-x64机器上的.net 3.5下在VS2008中开发C#

我最近切换到Vista-x64并经过一些搜索,我仍然觉得我并不完全理解OS和.net框架之间的相互作用.我想对此进行一些更正/澄清.

以下是我对开发过程的理解(如果我弄错了,请更正):

当我设置我的项目时,我可以设置平台目标:x64,x86,AnyCpu.据我了解,AnyCpu将针对当前平台(在我的情况下为x64).我也可以定位x86并仍然执行它(由于WoW64).

我假设当我定位x64时,程序将使用64位.net框架3.5,以及x86的类似32位框架.它是否正确?

令我困惑的是,当我定位x64并打印出平台信息时,它会打印" WIN32NT ".这让我相信" WIN32NT "不是我认为的那样,但我还没有找到很多关于这一点.这是什么?

ComputerInfo computerInfo = new ComputerInfo();
Console.WriteLine("{0,-30}:\t{1}", "Platform", computerInfo.OSPlatform);
Run Code Online (Sandbox Code Playgroud)

谢谢.

dav*_*ere 5

它并没有真正帮助,但所有的环境都返回win32nt ...如果他们返回win64nt会不会有帮助呢?

你有没有发现其他问题?或者只是在这里寻求知识?

尝试检查您的IntPtr大小.它会让你知道你的应用程序是否以64位模式运行(我认为)

http://msdn.microsoft.com/en-us/library/system.intptr.size.aspx

http://blogs.msdn.com/kstanton/archive/2004/04/20/116923.aspx