如何确定(通过代码)程序集corgags?

时间:2009-10-14 21:09:32

标签: .net assemblies 32bit-64bit corflags

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

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

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

3 个答案:

答案 0 :(得分:10)

查看this链接,它描述了与您的查询类似的情况。接受的答案描述了如何使用反射和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);
        }
    }
}

答案 1 :(得分:4)

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

var asmbly = Assembly.ReflectionOnlyLoad("filename");
var PeFlags = asmbly.ManifestModule.GetPEKind();
//PeFlags is effectively CorFlags.

答案 2 :(得分:3)