我需要编写一个类似 CorFlags 的应用程序。如果我有汇编文件的路径,我如何读取它的 CorFlags?
我特别需要知道程序集是 Any-CPU 还是 x86
我想避免使用反射加载程序集,因为我需要扫描许多文件。
我需要编写一个类似 CorFlags 的应用程序。如果我有汇编文件的路径,我如何读取它的 CorFlags?
我特别需要知道程序集是 Any-CPU 还是 x86
我想避免使用反射加载程序集,因为我需要扫描许多文件。
看看这个链接,它描述了与您的查询类似的情况。接受的答案描述了如何使用反射和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);
}
}
}
System.Reflection.Assembly 有很多东西可以帮助你。
var asmbly = Assembly.ReflectionOnlyLoad("filename");
var PeFlags = asmbly.ManifestModule.GetPEKind();
//PeFlags is effectively CorFlags.
如果您不想使用反射,可以查看
CCI http://ccimetadata.codeplex.com/Wiki/View.aspx?title=API%20overview或
Mono.Cecil http://www.mono-project.com/Cecil