在我的应用程序中,我试图从其字节数组中运行一个exe,我这样做:
private static void RunFromBytes(byte[] bin)
{
Assembly a = Assembly.Load(bin);
// search for the Entry Point
MethodInfo method = a.EntryPoint;
if (method != null)
{
// create an istance of the Startup form Main method
object o = a.CreateInstance(method.Name);
// invoke the application starting point
method.Invoke(o, null);
}
}
但是,当我尝试这个时,我收到了这个错误:
“System.BadImageFormatException”类型的未处理异常 发生在mscorlib.dll
其他信息:无法加载文件或程序集'49150字节 从mybbClient加载,Version = 1.0.0.0,Culture = neutral, PublicKeyToken = null'或其依赖项之一。一次尝试 加载格式不正确的程序。
在这一行:
Assembly a = Assembly.Load(bin);
byte []来自.net应用程序,如果我把它写入磁盘并从那里运行它就可以正常工作。任何帮助,将不胜感激。 感谢。
答案 0 :(得分:1)
查看documentation此异常,一个常见的可能原因是32位和64位程序集不匹配。确切的措辞是:
DLL或可执行文件作为64位程序集加载,但它包含32位功能或资源。
确保没有目标平台不匹配,因为这会阻止正确加载程序集。