【发布时间】:2011-12-22 06:57:27
【问题描述】:
这是我的困境:
问题
- 我有使用 System.Data.SQLite 的子程序(一个 DLL),并且两者都编译为 .NET 2.0
- 我的 MainProgram(一个 EXE)被编译为 .NET 4.0
- 我的 MainProgram 将 SubProgram 加载到单独的应用程序域中并与代理通信
显然,MainProgram 正在加载 SubProgram 并使用 .NET 4.0 运行它。这会导致known issue with System.Data.SQLite。
现在,我已经研究并尝试了针对 SQLite 问题的所有建议修复,唯一有效的是更新到使用 .NET 4.0 编译的 System.Data.SQLite 程序集(请参阅this link 处的 .NET 4.0 版本) .
这将解决我的问题,只有我们有一套严格的发布规则并且不会以任何方式发布 SubProgram 或其依赖项,因此 SubProgram 正在使用的 System.Data.SQLite DLL 必须保持当前的 .NET 2.0版本。
问题
有没有办法指定 MainProgram 使用 .NET 2.0 加载和运行 SubProgram?设置应用程序域时可能会发生什么?到目前为止,我找不到任何东西。
还有其他解决方案吗?
【问题讨论】:
-
不,这仅在自定义托管方案中才有可能。通过使其成为 [ComVisible],您可能不会领先。和制定规则的人谈谈,我们帮不了你。
标签: c# .net-4.0 .net-2.0 appdomain system.data.sqlite