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

Нашей кодовой базой, где я работаю, является.NET 2.0. Для наших новых assembly/DLLs/web приложений я хотел бы использовать в своих интересах то, что 3.5 должен предложить.

Можно смешать платформы.NET (на блок) в решении? Там какие-либо связанные с IIS протесты к этому?

Я хотел бы услышать любую положительную/отрицательную/с практическими рекомендациями обратную связь.Дайте мне знать!

Спасибо!

42
задан Micah 12 March 2010 в 13:50
поделиться

6 ответов

Да, вы можете сделать это в Visual Studio, и это называется Multi-Targeting .

Скотт Гатри написал отличную запись в блоге о Поддержка множественного таргетинга в Visual Studio .

VS 2008 был первым выпуском Visual Studio, который включал поддержку множественного таргетинга для .NET. Это означало, что вы можете использовать VS 2008 для создания и редактирования не только проектов .NET 3.5, но также .NET 3.0 и .NET 2.0. проекты. Это позволило разработчикам быстрее обновлять и использовать новые функции инструментов Visual Studio - без необходимости требовать более новую версию .NET, который будет установлен на клиентах и ​​ производственных серверах, на которых запущены их приложения.

Ура

19
ответ дан 27 November 2019 в 00:00
поделиться

Это не должно быть проблемой. Все от .NET 2.0 RTM до .NET 3.5 SP2 используют одну и ту же версию CLR. Они различаются только количеством включенных сборок. Формат сборки такой же. Конечно, если вы все-таки пользуетесь сборкой, которая включена только в .NET 3.5, вы должны убедиться, что 3.5 действительно установлена ​​на целевой машине. Вы быстро узнаете, если это не так.

3.5 уже должен быть на машине, если на ней включен Центр обновления Windows. Если нет, то на то, чтобы это сделать, уйдет около дюжины минут.

2
ответ дан 27 November 2019 в 00:00
поделиться

В качестве примечания: у нас есть несколько старых библиотек 1.0, которые мы использовали в 2.0 и все еще используем в 3.5 без перекомпиляции. Так что есть некоторая обратная совместимость.

2
ответ дан 27 November 2019 в 00:00
поделиться

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

2
ответ дан 27 November 2019 в 00:00
поделиться

Если вы можете дождаться появления новой платформы .NET 4.0, вы сможет запускать библиотеки DLL для каждой версии бок о бок в одном процессе.

3
ответ дан 27 November 2019 в 00:00
поделиться

РЕДАКТИРОВАТЬ: Я ошибался, вы можете. Вы можете ссылаться на 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/

4
ответ дан 27 November 2019 в 00:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: