这里是我的困境:如何将程序集加载到具有不同目标框架的独立应用程序域中?
的问题
- 我有子程序(一个DLL)使用System.Data.SQLite和两个被编译为.NET 2.0
- 我MainProgram(主程序)(一个EXE)被编译到.NET 4.0
- 我MainProgram(主程序)子程序加载到一个单独的应用程序域,并与代理
显然,MainProgram正在加载SubProgram并使用.NET 4.0运行它。这导致known issue with System.Data.SQLite。
现在,我已经研究并尝试了SQLite问题的所有建议修复,并且唯一工作的是更新到使用.NET 4.0编译的System.Data.SQLite程序集(请参阅.NET 4.0版,网址为this link)。
这将解决我的问题,只有我们有一套严格的发布规则,并且不以任何方式释放SubProgram或它的依赖项,因此SubProgram使用的System.Data.SQLite DLL必须保留为当前的.NET 2.0版本。
问题(S)
是否有指定MainProgram(主程序)加载和运行子程序使用.NET 2.0的方式?在设置应用程序域时可能有些事情?到目前为止,我找不到任何东西。
有没有另一种解决方案?
不,只有在自定义托管方案中才有可能。你可能不会提前做出[ComVisible]。与那些制定规则的人交谈,我们无法帮助你。 –