2015-10-17 4 views
3

У нас есть приложение с более чем 300 + компонентами (dll и несколькими exe's). Некоторые из них нацелены на 4.0 фреймворк, некоторые используют 2.0 framework, некоторые из них написаны на родном C++ (без изменений), некоторые используют C++/CLI, а некоторые из них написаны в ManagedExtensions для C++.Миграция с .NET framework 2.0 до 4.5.2

Теперь наше требование - перейти на .NET Framework 4.5.2.

Так что мой вопрос:

Будет ли это нормально, если я просто изменить версию TargetFramework на всех ех-х до 4.5.2 с меняющимся TargetFramework версию библиотеки DLL вне дома?

Гарантировано, что все мои DLL загружены и запущены в версии 4.5.2? (Включено все C++ dll's).

Я просмотрел несколько статей в Интернете, и я не смог найти конкретный ответ в сценарии, где у нас есть сочетание C#, управляемых C++ и неуправляемых dll C++. Любая помощь приветствуется.

Редактировать: Наша команда генерирует основные библиотеки (своего рода фреймворк) и несколько исполняемых файлов (ориентированных на 2.0 фреймворк), которые могут использоваться различными другими командами для удовлетворения своих конкретных требований клиентов. Некоторые из клиентов еще не перенесены из XP (платформа Max .NET, используемая в XP, равна 4.0). Поэтому, наряду с новыми ОС, нам все равно нужно поддерживать клиентов с использованием XP.

ответ

3

Хотя проекты 2.0 обычно обновляются до 4.5.x без изменений кода, существуют разногласия между версиями .NET, с которыми вы можете столкнуться. Учитывая масштаб и сложность вашего проекта, я должен посоветовать вслепую изменение имущества TargetFramework и надеяться на лучшее.

В то время как 4.0 исполняемые файлы могут загружать 2.0 DLL, это не рекомендуется из-за описанных выше изменений прерывания.

You будет столкнуться с проблемами при смешивании кода C++. Я рекомендую вам начать с обновления (или, вернее, перезаписи) кода «Управляемые расширения для C++» на C++/CLI (вы можете использовать возможности C++ 11 и C++ 14, присутствующие в VS2015, когда вы находитесь в Это).

Я рекомендую обновлять каждый проект отдельно и отдельно, работая над цепочкой зависимостей. Это поможет, если вы (или будете писать) модульные тесты и интеграционные тесты для более важных частей вашей системы.

+0

Спасибо за ваше предложение. Мы скоро перейдем к C++/CLI. Мы провели некоторое тестирование с подходом к изменению версии исполняемого файла для целевой версии 4.5.2, и до сих пор у нас не было никаких проблем. Есть ли у вас список тех функциональных изменений, которые вам доступны, и я продолжу их поиск. –

0

Перенос с 2.0 на 4.5.2 - это просто щелчок по клику, в то время как никакой gaurantee он не сломает ничего. Недавно я обновил web-приложение до версии 4.5.2, и возникла проблема с проверкой запроса, сторонний инструмент сломался, а что нет.

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

Теперь смешение 2.0 с 4.5.2 может привести к хаосу, так как вам нужно учитывать потребление приложения тоже во время написания кода.

+0

Это хороший момент. У нас есть клиенты, которые также используют XP. Это означает, что при доставке кода мы также должны учитывать тот факт, что клиент может использовать структуру 2.0 или 4.0 и проверять наши изменения на обоих из них. –

Смежные вопросы