Можете ли вы смешивать версии .NET Framework в решении?

StackOverflow https://stackoverflow.com/questions/2433108

  •  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 может успешно сосуществовать в одном пуле приложений)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top