检查服务是在Windows上安装为64位还是32位

用户名

我需要检查Windows系统上是否为64位版本或32位版本编译了可执行程序。

西奥多罗斯·查齐吉安娜基斯

我认为这个问题很难回答,因为Windows中的.NET可执行文件包含两种形式的代码:

第一部分是一个本地存根,它引入了系统的可用运行时间(对于较旧的Windows系统,当OS加载程序无法本地识别CLR程序集时)。像其他Windows应用程序一样,它可以是32位或64位。您可以通过分析其PE标头找出其目标体系结构

如您所知,这很容易确定。但是,我怀疑它也可能与您的用例(以及大多数用例)没有太大关系,因为第一部分不包含程序的“有用”部分,并且主要是出于遗留原因。

第二部分是将进行JIT编译然后执行的IL(字节码)这是有用的部分,但是在不运行时很大程度上与平台无关。是由运行时JIT生成的代码变为32位或64位。

  • 现在,如果该程序集是使用x86x64配置显式构建的,则将被标记为这样,无论是32位还是64位您都可以通过编程方式找到它而无需运行它

  • 但是,如果将其标记为AnyCPU(如今,就像大多数程序集一样),您将无法事先知道对JIT编译的代码会有什么期望。您只能真正找到了在运行时(通过询问环境比较的大小IntPtr,例如)。或者,您可以进行有根据的猜测-如果您当前的程序在32位Windows下运行(但是从非托管代码确定这一点可能不可靠),则您绝对不必期望.NET程序集会生成64位CPU指示。但是,如果您在64位Windows(同样是最有可能的情况)下运行,就不会那么容易,尤其是考虑到.NET 4.5中AnyCPU配置的语义已更改时 而且您还必须考虑这些更改。

现在,这是您可能已经意识到的问题:第一部分和第二部分可能不匹配。而且它们通常不这样做,因为最常见的情况是使用AnyCPU配置(通常会生成32位PE可执行文件构建并部署在64位系统上,其中IL将JIT编译为64位指示。

最后,您必须具体确定要知道的两个(以及是否值得解决)。您可能还需要探索其他选项,例如利用AnyCPU程序集可以32位或64位加载的事实,并且在许多情况下,无需检查即可使用它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何检查已安装的Anaconda是32位还是64位?

来自分类Dev

如何检查安装的 wxPython 是 32 位还是 64 位?

来自分类Dev

安装64位Ubuntu还是32位?

来自分类Dev

检查固化剂JVM是64位还是32位

来自分类Dev

如何检查我的软件是32位还是64位

来自分类Dev

如何检查我的软件是32位还是64位

来自分类Dev

检查固化剂JVM是64位还是32位

来自分类Dev

如何确定我的cygwin安装是32位还是64位?

来自分类Dev

我的Ubuntu是安装32位还是64位?

来自分类Dev

我应该安装32位还是64位?

来自分类Dev

为NSIS安装程序选择32位还是64位?

来自分类Dev

gradle确定是在32位还是64位Windows系统上

来自分类Dev

如何确定我的Windows是32位还是64位?

来自分类Dev

检查已安装的mingw(32位或64位)的平台

来自分类Dev

在64位Ubuntu服务器上安装32位Java

来自分类Dev

在64位Windows系统上的虚拟PC上安装32位Linux是否可以?

来自分类Dev

Win32上的64位Anaconda使用32位还是64位?

来自分类Dev

在Windows / Linux上使用python3脚本检查可执行文件是32位还是64位

来自分类Dev

WiX 无法安装为 64 位

来自分类Dev

如何在PowerShell中检查要安装的可执行文件是32位还是64位?

来自分类Dev

Windows 7:我应该安装64位还是32位版本?(x64与x86)

来自分类Dev

如何知道我的服务器中安装了哪个版本的Office 2013;32位还是64位?

来自分类Dev

如何在Windows 7 32位的Ubuntu 14.04 64位VM上安装Big Data Hadoop

来自分类Dev

如何在Windows 7 32位的Ubuntu 14.04 64位VM上安装Big Data Hadoop

来自分类Dev

如何在64位Ubuntu上安装32位python

来自分类Dev

在32位ubuntu上安装64位内核

来自分类Dev

如何在64位Ubuntu上安装32位Wine?

来自分类Dev

如何在64位Ubuntu上安装32位Wine?

来自分类Dev

如何在64位Ubuntu上安装32位python

Related 相关文章

  1. 1

    如何检查已安装的Anaconda是32位还是64位?

  2. 2

    如何检查安装的 wxPython 是 32 位还是 64 位?

  3. 3

    安装64位Ubuntu还是32位?

  4. 4

    检查固化剂JVM是64位还是32位

  5. 5

    如何检查我的软件是32位还是64位

  6. 6

    如何检查我的软件是32位还是64位

  7. 7

    检查固化剂JVM是64位还是32位

  8. 8

    如何确定我的cygwin安装是32位还是64位?

  9. 9

    我的Ubuntu是安装32位还是64位?

  10. 10

    我应该安装32位还是64位?

  11. 11

    为NSIS安装程序选择32位还是64位?

  12. 12

    gradle确定是在32位还是64位Windows系统上

  13. 13

    如何确定我的Windows是32位还是64位?

  14. 14

    检查已安装的mingw(32位或64位)的平台

  15. 15

    在64位Ubuntu服务器上安装32位Java

  16. 16

    在64位Windows系统上的虚拟PC上安装32位Linux是否可以?

  17. 17

    Win32上的64位Anaconda使用32位还是64位?

  18. 18

    在Windows / Linux上使用python3脚本检查可执行文件是32位还是64位

  19. 19

    WiX 无法安装为 64 位

  20. 20

    如何在PowerShell中检查要安装的可执行文件是32位还是64位?

  21. 21

    Windows 7:我应该安装64位还是32位版本?(x64与x86)

  22. 22

    如何知道我的服务器中安装了哪个版本的Office 2013;32位还是64位?

  23. 23

    如何在Windows 7 32位的Ubuntu 14.04 64位VM上安装Big Data Hadoop

  24. 24

    如何在Windows 7 32位的Ubuntu 14.04 64位VM上安装Big Data Hadoop

  25. 25

    如何在64位Ubuntu上安装32位python

  26. 26

    在32位ubuntu上安装64位内核

  27. 27

    如何在64位Ubuntu上安装32位Wine?

  28. 28

    如何在64位Ubuntu上安装32位Wine?

  29. 29

    如何在64位Ubuntu上安装32位python

热门标签

归档