我有一个 .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/