Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
167 / 139 / 23
Регистрация: 02.01.2011
Сообщений: 913
1

Преобразовать программу NET 2.0 framework в Net 4.0

24.09.2012, 11:50. Показов 2722. Ответов 11
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
По наследству достался проект, которыи требуется преобразовать из NET 2.0 framework в Net 4.0.
Проблема в том, что внутри кода методом past-copy из NET 2.0(как я поняла) существует класс SerialPort : System.ComponentModel.Component. Теперь для того, чтобы не возникало конфликта между SerialPort из Net 4.0 и SerialPort из NET 2.0 мне нужно переписать все своиства (ручками) на Net 4.0 ,т.к. этими своиствами пользуются другие классы этого проекта
Например,есть вот такое вот
C#
1
2
Port.ReceivedEvent+=new System.IO.Ports.SerialEventHandler(Port_ReceivedEvent);
Port.PinChangedEvent+=new System.IO.Ports.SerialEventHandler(Port_PinChangedEvent);
Это в NET 2.0Надо замнить на ... А вот на что?
В Net 4.0 есть Port.DataReceived и Port.PinChanged Это оно?Как бы найти соответствие всех своиств
SerialPort в NET 2.0 и Net 4.0?
Вообщем, все не радует и не знаю что делать.
Приму с благодарностью любую конструктивную помощь(пожалуйста, выкинуть старый проект и писать заново , не предлагайте) Спасибо!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2012, 11:50
Ответы с готовыми решениями:

Запуск приложения на платформе .NET Framework 4.0, на другом компьютере без установки .NET Framework 4.0
Как запустить приложение на платформе .NET Framework 4.0, на другом компьютере без установки .NET...

Settings проекта после перебилда с Net Framework 4.0 на Net Framework 3.0
У меня возникла следующая проблема: Если создать проект WinForms под Net Framework 4.0,...

В списке Target Framework не выбирается .NET Framework 4 только .NET Framework 4 Client Profile
Свойства проекта (Project -> Properties) -> вкладка Compile -> Advenced complie options -> в списке...

Объясните на пальцах совместимость библиотек в .Net Core, .Net Framework, .Net Standart
Изучаю .Net. Хочу написать некое серверное приложение (думаю что учеба лучше на реальном примере,...

11
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.09.2012, 12:23 2
iva_a, я не совсем понимаю проблему. класс SerialPort присутствует в Net 4.0. Просто в референсах ссылку меняешь, и код продолжает работать , зачем что-то искать и менять?
0
167 / 139 / 23
Регистрация: 02.01.2011
Сообщений: 913
24.09.2012, 12:59  [ТС] 3
nio, в том-то и дело, что код не продолжает работать! Возникает куча ошибок т.к. есть SerialPort namespace System.IO.Ports от Net4 и класс Class: SerialPort: System.ComponentModel.Component И их свойства не совпадают!См.выше

Добавлено через 2 минуты
nio, а как я могу поменять ссылку, чтобы в проекте обращаться не к namespace System.IO.Ports
от Net4, а от Net 2? Это возможно?
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.09.2012, 13:19 4
Цитата Сообщение от iva_a Посмотреть сообщение
а как я могу поменять ссылку, чтобы в проекте обращаться не к namespace System.IO.Ports
от Net4, а от Net 2? Это возможно?
да, грохаешь в референсах старую ссылку, и устанавливаешь новую.
Цитата Сообщение от iva_a Посмотреть сообщение
nio, в том-то и дело, что код не продолжает работать! Возникает куча ошибок т.к. есть SerialPort namespace System.IO.Ports от Net4 и класс Class: SerialPort: System.ComponentModel.Component И их свойства не совпадают!
это проблема не Net 4.0, а того, что в ты используешь в принципе разные классы. Они находятся в разных namespace и реализация у них разная, совпадают только имена (вот они прелести полиморфизма )

Не по теме:

Это как Вася Иванов и Вася Петров - имена одинаковые, а востальном разные люди

0
167 / 139 / 23
Регистрация: 02.01.2011
Сообщений: 913
24.09.2012, 13:31  [ТС] 5
nio, да это-то я прекрасно понимаю(про разную реализацию, включая ВасьМне сейчас главное - как выбраться из этой ситуации по возможности "малой кровью" Коллега посоветовал Написать свои класс, наследовать от Net.4и добавить нужные своиства из Net2. Вообщем, неуверена , что получится, но другого пути пока не вижу...
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.09.2012, 13:52 6
недавно конвертил проект (SerialPort правда не использовал).
Просто брал проект написанный в VS2005, в контекстном меню выбирал открыть с помощью VS2010. При запуске студия сама предлагает его сконвертировать. После этого в свойствах проекта выбирал Target Framework: 4.0, затем поменял ссылки в референсах, и всё, никаких изменений в коде.

На всё ушло не более 10 минут.
0
167 / 139 / 23
Регистрация: 02.01.2011
Сообщений: 913
24.09.2012, 13:59  [ТС] 7
ок, я тоже так делала с разными другими проектами , а в этом получаю вот такую ошибку
Error 75 The type 'System.IO.Ports.SerialPort' exists in both 'd:\RemmonDev\Src\RTEC\.NET1.1_Components\SerialPort_asStream\bin\Debug\SerialPo rt_asStream.dll' and 'c:\Windows\Microsoft.NET\Framework\v2.0.50727\System.dll' D:\RemmonDev\Src\RTEC\.NET1.1_Components\ComManager\ComManager.cs 307 15 ComManager
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.09.2012, 14:49 8
iva_a, ошибка возникает на стадии конвертации или компиляции сконвертированного проекта?
0
167 / 139 / 23
Регистрация: 02.01.2011
Сообщений: 913
24.09.2012, 15:28  [ТС] 9
При компиляции
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.09.2012, 15:56 10
iva_a, проблема в том, что у тебя "пересекаются" пространства имен. Тут нужно отключить в using ненужное. Если это недопустимо попробуй в коде явно указывать откуда берутся эти классы
пример:
C#
1
2
3
4
//Т.е вместо 
var _port = new SerialPort();
//пиши
var _port = new System.IO.Ports.SerialPort
1
167 / 139 / 23
Регистрация: 02.01.2011
Сообщений: 913
24.09.2012, 16:07  [ТС] 11
nio, спасибо, пытаюсь, пока безуспешно. Как я говорила в начале, в самом коде скопирован класс SerialPort и namespace его именно System.IO.Ports.SerialPort, а потом в этот класс дописаны еще функции установки default, еще что-то.И этот класс используется как компонентТ.е. сеичас занимаюсь тем, что установила все референсы на Net 4 и пытаюсь что-нибудь из этого сварганить Дело в том, что Net 2 у нас уже нет, и людеи , которые это наваяли тоже нет.

Добавлено через 2 минуты
Да, и еще, в коде как раз есть такая строка
C#
1
using SerialPorts=System.IO.Ports;
в этом по-моему все и дело. Но в любом случае мне надо использоват SerialPort от Net 4
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.09.2012, 20:58 12
Цитата Сообщение от iva_a Посмотреть сообщение
в коде как раз есть такая строка
Это строка позволяет давать свои "псевдонимы" пространствам имен, на изменение платформы она влиять не должна
1
24.09.2012, 20:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2012, 20:58
Помогаю со студенческими работами здесь

Перенос проекта из VS2015 (.Net Framework 4.5) в VS2008 (.Net Framework 3.5)
Здравствуйте разрабатывал графическое приложение c++/cli winforms в среде visual studio 2015 года+...

Совместимость проекта .NET Framework 4.6.2. На ПК с VS где установлен .NET Framework 4.6.1?
Если решение написано под .NET Framework 4.6.2, то соберется ли без ошибочно данное решение на...

Ошибка при установке .NET Framework 4.6.1: ".NET Framework 4.6.1 не поддерживается этой операционной системой"
Устанавливаю Microsoft .NET Framework на Windows 7. Возникает ошибка как на скриншоте. ...

Подключить к проекту (NET Framework 4) библиотеку на NET Framework 2
Суть вопроса такова, мне надо использовать в программе одну библиотеку но она написана и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru