2

我需要编写一个类似 CorFlags 的应用程序。如果我有汇编文件的路径,我如何读取它的 CorFlags?

我特别需要知道程序集是 Any-CPU 还是 x86

我想避免使用反射加载程序集,因为我需要扫描许多文件。

4

3 回答 3

10

看看这个链接,它描述了与您的查询类似的情况。接受的答案描述了如何使用反射和Module.GetPEKind。这可能会帮助你。

编辑:有点晚了,但这里有一个例子:

namespace ConsoleApplication1
{
    using System.Reflection;

    public class Program
    {
        public static void Main()
        {
            Assembly a = Assembly.GetExecutingAssembly();

            PortableExecutableKinds peKind;
            ImageFileMachine machine;

            a.ManifestModule.GetPEKind(out peKind, out machine);
        }
    }
}
于 2009-10-14T21:20:11.853 回答
4

System.Reflection.Assembly 有很多东西可以帮助你。

var asmbly = Assembly.ReflectionOnlyLoad("filename");
var PeFlags = asmbly.ManifestModule.GetPEKind();
//PeFlags is effectively CorFlags.
于 2009-10-14T21:22:26.233 回答
3

如果您不想使用反射,可以查看

CCI http://ccimetadata.codeplex.com/Wiki/View.aspx?title=API%20overview

Mono.Cecil http://www.mono-project.com/Cecil

于 2009-10-15T07:12:33.500 回答