gpt4 book ai didi

c# - 如何以编程方式检查托管程序集是 x86、x64 还是 AnyCPU?

转载 作者:太空狗 更新时间:2023-10-29 19:58:41 25 4
gpt4 key购买 nike

我需要以编程方式确定程序集是 x86、x64 还是 AnyCPU?有一个几乎相同的 question , 但它提供的解决方案

Assembly assembly = Assembly.LoadFrom(fileName);
PortableExecutableKinds peKind;
ImageFileMachine imageFileMachine;
assembly.ManifestModule.GetPEKind(out peKind, out imageFileMachine);

尝试从 32 位进程加载 64 位程序集时失败(反之亦然)。

是否有一种万无一失的方法来以编程方式找出程序集的编译类型?

编辑:根据@BenVoigt 的建议,我创建了一个 small command line utility检查 DLL 是否被管理以及它的 x86/x64/AnyCPU 是否。我希望有人觉得它有用。

最佳答案

这个问题已经解决了:

但答案不完整,建议使用Assembly.LoadFrom。这是一个糟糕的主意,因为它会从程序集中运行代码,而且如果位数与您的进程不匹配则会失败。

相反,您应该使用 Assembly.ReflectionOnlyLoadFrom .这使您无需实际加载任何代码即可读取元数据,因此架构无需正确。

关于c# - 如何以编程方式检查托管程序集是 x86、x64 还是 AnyCPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9470199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com