Вызов библиотеки классов .NET 4.0 WPF из приложения .NET 2.0 - PullRequest
2 голосов
/ 08 апреля 2011

У меня есть приложение, написанное на .NET 4.0, которое я компилирую в файл DLL.Я хочу иметь возможность использовать этот файл DLL в приложении Windows Forms .NET 2.0.Мне не нужно, чтобы приложение действительно много взаимодействовало, кроме как просто передать пару строковых значений в 4.0 DLL.DLL - это в значительной степени связка Windows, которую я преобразовал в UserControls, и мне просто нужно иметь возможность ссылаться на них, чтобы отображать UserControls из приложения 2.0 без необходимости использовать другой exe-файл и упаковывать их отдельно.Каков наилучший способ сделать это?Потому что, когда я пытаюсь добавить ссылку на DLL в приложение 2.0, он выдает ошибку и говорит, что DLL встроена в более новую версию .NET, поэтому я не могу сделать это таким образом.Это где COM-объект будет входить?Любая информация и ссылки, я был бы очень признателен, спасибо.

Ответы [ 2 ]

2 голосов
/ 08 апреля 2011

Если приложение действительно и действительно можно вызывать из приложения 2.0, то лучший подход - это скомпилировать его как приложение 2.0.Visual Studio 2010 (и 2008) поддерживает понятие многоцелевых решений.То есть вы можете использовать его для компиляции проекта для различных версий CLR.

Я бы использовал метод компиляции моего приложения дважды

  • Один раз для 4.0
  • Один раз для 2.0

Таким образом, вы можетеиспользуйте DLL непосредственно в вашем приложении 2.0.Никаких грязных трюков COM не требуется

0 голосов
/ 23 сентября 2011

Вызов .ne 4.0 из .net 2.0 действительно возможен. Проблема не в этом, но я не думаю, что вы можете отправить пользовательский контроль через!

Я делаю это в пару раз, когда я прохожу простые классы от 4.0 до моих сборок 2.0. Хитрость заключается в том, чтобы зарегистрировать сборку 4.0 как ServicedComponent (COM +), а затем совместно использовать интерфейс (.net 20) между этими сборками. Затем в вашей сборке .net 2.0 создайте экземпляр ServicedComponent и извлеките экземпляр вашего интерфейса из сборки "middleware".

Как уже говорилось, через это можно передавать только интерфейсы, и, как мне кажется, будет сложно составить маркер сложного типа как UserControl.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...