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

标签 .net 32bit-64bit x86-64

快速背景:我在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/

相关文章:

c# - 修复流式 USB 数据中的差距

.net - System.ServiceProcess.ServiceController.Stop() 是同步还是异步?

c# - 从处理抽象类实例的抽象类<T>调用方法

vb.net - Windows 7 中的 System32 文件夹

php - 为什么windows7 64上的php win32无法连接到同一台机器上安装的mysql 32或64?

c - Intel 64 ISA 中类型转换的说明是什么

c# - 将区域文件夹中的页面设置为asp.net core 2.2 MVC中的默认页面

.net - 通过 ClickOnce 部署识别目标计算机(32 位或 64 位)

c - 使用共享库时的函数原型(prototype)

c - movsd 从内存到 c x86-64 jit 中的 xmm0