AppDomain.CreateDomain导致访问冲突

时间:2017-07-13 19:18:18

标签: c# .net unity3d mono appdomain

我正在为Unity游戏(Subnautica)制作一个插件加载器。加载机制本身工作正常,但我想将程序集加载到一个单独的应用程序域,所以我也可以在运行时卸载它们。

但是,调用AppDomain.CreateDomain(string)会导致Unity崩溃,并在

中留下错误日志
  

未知导致访问冲突(0xc0000005)     在模块中未知0033:049f7717   ...
  从位置00000000读取导致访问冲突。

和游戏生成的日志

  

0x0000000005048C6D((< unknown>))
  错误:SymGetSymFromAddr64,GetLastError:'找不到指定的模块。'
  错误:SymGetModuleInfo64,GetLastError:'动态链接库(DLL)初始化例程失败。'

我尝试将直接调用AppDomain.CreateDomain的代码注入到游戏代码中,并尝试使用AppDomain.CreateDomain注入加载调用Assembly.Load的dll的代码,两种方法同一消息崩溃。

Unity版本是5.4.4f1,我在Windows 10上,调用AppDomain.CreateDomain的程序集使用.net 3.5。 This是Unity创建的error.log和Subnautica创建的output_log.txt中的堆栈跟踪。

有没有人知道什么可能导致Unity崩溃?

PS,我确切地知道AppDomain.CreateDomain导致问题。

0 个答案:

没有答案