0

我正在为我们的产品编写一个安装验证工具,我需要从几个已安装的程序集中检索一些 PE 信息。无论我们的产品安装在什么平台上,我们都会将 AMD64、x86 和 MSIL 组件运送到特定位置,让用户为这些平台创建部署项目。

问题是,使用以下代码:

Module manifestModule = Assembly.LoadFile(fileName).ManifestModule;
ImageFileMachine m;
PortableExecutableKinds pe;
manifestModule.GetPEKind(out pe, out m);

如果应用程序以 x86 运行并尝试加载 AMD64 程序集,Assembly.LoadFile(...) 将中断,反之亦然。

我发现这些相关但不完全:

4

1 回答 1

0

尝试使用 Assembly.ReflectionOnlyLoad。这将允许您将程序集加载到内存中 - 但不会执行其中的任何代码。这将允许加载 x64 程序集以在 x86 进程中进行反射。

于 2009-05-20T04:06:00.090 回答