Можете ли вы смешивать версии .NET Framework в решении?
-
19-09-2019 - |
Вопрос
Наша кодовая база, где я работаю, — .NET 2.0.Для наших новых ассемблеров/DLL/веб-приложений я хотел бы воспользоваться преимуществами версии 3.5.
Можно ли смешивать платформы .NET (для каждой сборки) в решении?Есть ли какие-либо предостережения, связанные с IIS?
Я хотел бы услышать любые положительные / отрицательные отзывы и отзывы.Дайте мне знать!
Спасибо!
Решение
Да, вы можете сделать это в Visual Studio, и это называется Множественный таргетинг.
У Скотта Гатри есть отличная запись в блоге о Поддержка нескольких таргетингов в Visual Studio.
VS 2008 был первым выпуском Visual Studio, который включал поддержку множественного таргетинга для .NET.Это означало, что вы могли использовать VS 2008 для создания и редактирования не только проектов .NET 3.5, но также проектов .NET 3.0 и .NET 2.0.Это позволило разработчикам быстрее обновлять и использовать преимущества новых Функций инструментов Visual Studio – без необходимости обязательного использования более новой версии .NET установленной на клиентах и производственных серверах, на которых выполняются их приложения.
Ваше здоровье
Другие советы
Вы можете использовать версии 2.0, 3.0 и 3.5 вместе в соответствии с:http://msdn.microsoft.com/en-us/library/bb383796(v=vs.90).aspx
РЕДАКТИРОВАТЬ:Я ошибся, ты можешь. Вы можете использовать сборки 3.+ в версии 2.0, потому что CLR такая же.Этого не произойдет при переходе с 2.0/3.+ на 4.0, поскольку существует новая версия CLR.
http://abdullin.com/how-to-use-net-35-syntax-and-compiler-features-for-net-20/
Если вы дождетесь новой платформы .NET 4.0, вы сможете запускать библиотеки DLL для каждой версии одновременно в одном и том же процессе.
Это не должно быть проблемой.От .NET 2.0 RTM до .NET 3.5 SP2 используют одну и ту же версию CLR.Они отличаются только количеством входящих в комплект сборок.Формат сборки тот же.Конечно, если вы воспользуетесь сборкой, включенной только в .NET 3.5, вы должны убедиться, что версия 3.5 действительно установлена на целевом компьютере.Если это не так, вы быстро узнаете.
3.5 уже должна быть на компьютере, если на нем включен Центр обновления Windows.Если нет, то потребуется около дюжины минут, чтобы это сделать.
В качестве примечания: у нас есть несколько старых библиотек версии 1.0, которые мы использовали в версии 2.0 и до сих пор используем в версии 3.5 без перекомпиляции.Так что здесь есть некоторая обратная совместимость.
Вы не можете запускать сборки .Net 1.1 в одном процессе со сборкой .Net 2.0+ — попытка сделать это приведет к сбою.
Что касается IIS, это означает, что вы не можете иметь сайты/виртуальные каталоги .Net 1.1, работающие в том же пуле приложений, что и сайты .Net 2.0 и более поздних версий. Вам необходимо создать отдельный пул приложений, чтобы код .Net 1.1 работал в другой процесс.(Это можно сделать только в IIS 6.0 и выше, т.е.не в Windows XP)
Однако, как говорит nobugz, все версии от .Net 2.0 до .Net 3.5 используют одну и ту же CLR, поэтому разные версии кода .Net можно без проблем смешивать в одной сборке - это также справедливо для IIS (.Net 2.0 и .Net Код версии 3.5 может успешно сосуществовать в одном пуле приложений)