首页 > 解决方案 > Assembly.LoadFrom 有效,Assembly.Load 无效

问题描述

我正在尝试使用加载文件,Assembly.Load但我得到一个 BadImageException,但如果我尝试使用它加载完全相同的程序集Assembly.LoadFrom

// this works.
var asm1 = Assembly.LoadFrom(path);

// this throws an exception
var ba = File.ReadAllBytes(path);
var asm2 = Assembly.Load(ba);

从上面的代码可以看出,程序集完全一样,但它适用于Assembly.LoadFrom但不适用Assembly.Load

可能是什么原因?我怎么Assembly.Load去上班?

标签: c#.net-assembly

解决方案


Assmebly.Load与. BadImageException _ Assembly.LoadFrom(string)要解决该问题,您必须/fixed:no在链接时使用。这是Msdn的一段:

反映 C++ 可执行文件可能会引发 BadImageFormatException。这很可能是由 C++ 编译器从可执行文件中剥离重定位地址或 .reloc 部分引起的。要保留 C++ 可执行文件的 .reloc 地址,请在链接时指定 /fixed:no。


推荐阅读