如何在AppDomain中执行非托管程序集?

xpo*_*ort 2 c#

执行非托管程序集时出现以下错误:

无法加载文件或程序集 '文件:/// C:\ Program Files文件\千里马-5.21.1\LIB \最大值\ 5.21.1 \二进制GCL\maxima.exe' 或它的一个依赖.该模块应该包含一个程序集清单.

我该怎么办?使用AppDomain执行非托管程序集是不可能的?

Fra*_*nov 5

  1. AppDomains是纯托管构造.在该进程中运行的任何非托管代码都不受AppDomain边界的影响,并且可以完全访问所有进程内存,数据和代码.

  2. 非托管程序集的执行方式与托管程序集的执行方式不同.加载程序集,查找和执行非托管程序集的入口点的过程与托管程序集的入口点不同.因此,你得到的特殊失败.

  3. 如果要执行非托管dll导出的函数,则应使用P/Invoke,这将确保使用正确的机制加载程序集并调用正确的入口点.

  4. 您无法在同一进程中运行可执行文件中的代码,如上面的方案中所示; 你只能开始一个新的过程.