我需要调用.NET 4.0中的System.Xaml库,但是如果你的项目针对3.5版本,是否可以调用此库?
我需要调用.NET 4.0中的System.Xaml库,但是如果你的项目针对3.5版本,是否可以调用此库?
不行。你需要将你的项目目标设置为在.NET 4中运行,并使用CLR v4,才能使用.NET 4程序集。
另外,这里没有真正的优势。只需将您的应用程序更改为针对.NET 4进行目标设置即可。如果您要添加对.NET 4框架程序集的依赖项,那么最好一开始就将其目标设置为.NET 4...
这是一种类似于鲁布·戈尔德堡的解决方案,它涉及将您的.NET 4 DLL方法包装在COM中,然后从.NET 3.5调用该COM包装器:
https://www.codeproject.com/Articles/204406/How-To-Use-a-NET-Based-DLL-From-NET-Based-Appl
不行,因为程序集被映射到不同的位置了。有一件事情可以做,但是比较麻烦,就是在内存中创建一个类型来重新组装你的.NET 4.0 dll。
你可以使用CECIL来获取IL指令。
如果你对IL不太了解,最好不要尝试这样做。
这个问题类似于“如何在.NET 1.x应用程序中使用.NET 2程序集”。无法将新CLR的程序集作为引用添加,但正如Hamish指出的那样,进程间通信可能有所帮助。