Обратная совместимость между .Net 2.0 / 3.5 и 4.0 - PullRequest
2 голосов
/ 03 сентября 2010

У меня есть приложение, которое я обновил с 3.5 до 4.0. Но не все мои сторонние сборки основаны на .net 4.0. Как получается, что я до сих пор могу без проблем ссылаться на эти сборки? Например, если другая сборка ссылается на system.dll 2.0, а мой обновленный проект ссылается на system.dll 4.0, как .net справляется с этим?

Очевидно, что это не было проблемой при обновлении между 2.0 и 3.5, потому что они используют одинаковые версии BCL и CLR, но 4.0 использует совершенно разные BCL и CLR, верно?

Вот пример. У меня есть приложение, созданное с использованием WF (Windows Workflow) в версии 3.5. Я обновил приложение до версии 4.0, но мне не нужно было вносить все важные изменения в новую версию рабочего процесса. Это все еще использует старую версию 3.5 WF.

Ответы [ 3 ]

4 голосов
/ 03 сентября 2010

.NET 4.0 может ссылаться на сборки .NET 2.0, но обратное неверно.

.NET 4.0 сборки поддерживают все, что было в 2.0, но добавляют такие вещи, как необязательные параметры, динамические типы и т. Д. *

Итак, поскольку у 2.0 нет ничего, чего нет у 4.0, 4.0 может легко поддерживать 2.0.

0 голосов
/ 03 сентября 2010

Вы также можете заставить сторонние сборки работать под 3.5, как описано в этом посте .

0 голосов
/ 03 сентября 2010

BCL и CLR разные, но не совсем разные. В основном они усердно работали, чтобы не сломать обратную совместимость.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...