我需要编写类似CorFlags的应用程序。 如果我有一个汇编文件的路径,如何读取它的CorFlags?
我特别需要知道程序集是Any-CPU还是仅x86
我想避免使用反射加载程序集,因为我需要扫描许多文件。
答案 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)
如果您不想使用反射,可以查看
CCI http://ccimetadata.codeplex.com/Wiki/View.aspx?title=API%20overview或
Mono.Cecil http://www.mono-project.com/Cecil