快速背景:我在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);
谢谢。
最佳答案
它并没有真正的帮助,但是所有环境都返回 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
关于.net - 从 32 位开发到 64 位开发,需要澄清 .net 框架和平台,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1580507/