.net - 如何确定 .NET 应用程序是 32 位还是 64 位?

标签 .net

我有一个 .NET 应用程序,本应编译为仅限 32 位的应用程序。我怀疑我的构建服务器实际上并没有这样做。

如何确定 .NET 应用程序是否确实设置为在 32 位模式下运行?

最佳答案

如果您尝试检查正在运行的应用程序是否在 32 位或 64 位模式下运行,请打开任务管理器并检查它是否带有星号 (*32 ) 位于进程名称旁边。

编辑(从manna的答案中导入):从Win8.1开始,进程的“bittyness”在标记为Platform的单独详细信息列中列出。 (右键单击任何列标题可显示选择列菜单。)

如果您有一个已编译的 dll,并且您想检查它是针对 32 位还是 64 位模式进行编译,请执行以下操作(来自 related question )。 我认为您希望为 AnyCPU 编译 dll

打开 Visual Studio 命令提示符并键入“corflags [您的程序集]”。你会得到这样的结果:

c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC>corflags "C:\Windows\Microsoft.NET\Framework\v2.0.50727\System.Data.dll"
    
Microsoft (R) .NET Framework CorFlags Conversion Tool. Version 3.5.21022.8 Copyright (c) Microsoft Corporation. All rights reserved.
    
Version : v2.0.50727
CLR Header: 2.5
PE : PE32
CorFlags : 24
ILONLY : 0
32BIT : 0
Signed : 1

您正在专门查看PE 和 32BIT

任何CPU:

PE:PE32 32位:0

x86:

PE:PE32 32位:1

x64:

PE:PE32+ 32位:0

关于.net - 如何确定 .NET 应用程序是 32 位还是 64 位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3782191/

相关文章:

c# - 存储应用程序设置 |注册表

c# - 交换对象和线程安全性有任何问题吗?

.net - DataContractJsonSerializer.ReadObject(流流): Can I read more than one object?

c# - 监控、锁定还是 volatile ?

.net - EF4 和代码优先方法

c# - Appdomain 与流程的性能优势?

c# - 当用户在 wpf 中将鼠标悬停在它上面时,我如何突出显示它?

c# - 停止重新锐化按字母顺序排序的字段?

c# - "For"循环增量无法正常工作。为什么?

c# - 是否建议使用标记来进行语法突出显示?