我有一个用.NET 4.0编写的应用程序,我编译成一个DLL文件。我希望能够在Windows Forms .NET 2.0应用程序中使用此DLL文件。除了将几个字符串值传递给4.0 DLL之外,我不需要应用程序真正进行多少交互。 DLL几乎是一堆Windows,我转换为UserControls,我只需要能够引用它们来显示来自2.0应用程序的UserControls,而不必使用不同的exe并且必须单独打包它们。做这个的最好方式是什么?因为当我尝试将DLL的引用添加到2.0应用程序时,它给了我并且错误地说DLL是在较新版本的.NET中构建的,所以我不能这样做。这是COM对象进来的地方吗?任何信息和链接,我真的很感激,谢谢。
答案 0 :(得分:2)
如果可以真正地从2.0应用程序调用应用程序,那么最好的方法是将其编译为2.0应用程序。 Visual Studio 2010(和2008)支持多目标解决方案的概念。也就是说,您可以使用它为各种版本的CLR编译项目。
我会采用两次编译应用程序的方法
这样您就可以直接在2.0应用程序中使用DLL。不需要凌乱的COM技巧
答案 1 :(得分:0)
确实可以从.net 2.0调用.ne 4.0。问题不是那样,但我不认为你可以发送用户控制!
我在几个灵魂中这样做,我将简单的类从4.0传递到我的2.0程序集。诀窍是将4.0程序集注册为ServicedComponent(COM +),然后在这些程序集之间共享一个接口(.net 20)。然后在.net 2.0程序集中实例化ServicedComponent并从“中间件”程序集中检索接口的实例。
如上所述,您只能通过此传输接口,并且将复杂类型编组为UserControl,我认为这将非常困难。