這裏是我的困境:如何將程序集加載到具有不同目標框架的獨立應用程序域中?
的問題
- 我有子程序(一個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]。與那些制定規則的人交談,我們無法幫助你。 –