Мне нужно сделать вызов в библиотеке System.Xaml в .NET 4.0. Можно ли позвонить в эту библиотеку, если ваш проект нацелен на 3,5?
Выполнение вызова библиотеки .NET 4 из 3.5
Ответ 1
Нет. Вам нужно настроить таргетинг вашего проекта на .NET 4 и использовать CLR v4, чтобы использовать сборки .NET 4.
В другом примечании - здесь нет реального преимущества. Просто измените приложение на целевую .NET 4. Если вы собираетесь добавить зависимость от сборок сборки .NET 4, вы можете просто нацелить .NET 4 в первую очередь...
Ответ 2
Вот своего рода Rube Goldberg - это решение, которое включает в себя объединение ваших DLL-методов .NET 4 в COM, а затем вызов этой COM-оболочки из .NET 3.5:
Ответ 3
Нет, вы не можете сопоставить сборку по-разному, одно, что вы могли бы сделать, но боль в том, чтобы создать тип в памяти, который собирает ваши DLL версии 4.0.
Вы можете использовать CECIL для получения инструкций IL.
Если вы не знаете IL, очень даже не пытайтесь это сделать.
Ответ 4
Этот вопрос похож на "как я могу использовать сборку .NET 2 в приложении .NET 1.x". Невозможно добавить сборку для новой CLR в качестве ссылки, но, как отметил Хэмиш, взаимодействие между процессами может помочь.