Связать библиотеки .NET 3.5 с приложением, чтобы оно работало на машинах с установленным только .NET 2.0? - PullRequest
2 голосов
/ 11 мая 2011

Я хочу использовать LINQ на машинах, на которых установлен только .NET Framework 2.0.

Я уже прочитал о LINQBridge.Но разве я не могу просто установить « copy local » для ссылочных сборок, таких как System.Core.dll и System.Xml.Linq.dll, чтобы получить необходимую мне функциональность?

Есть ликакие-нибудь недостатки?Это даже разрешено?

1 Ответ

3 голосов
/ 11 мая 2011

.Net 3.5 - это просто .Net 2.0 с некоторыми дополнительными библиотеками. Там нет 3,5 времени выполнения. Если вы включите необходимые библиотеки, приложение будет работать без проблем.

Из следующей статьи о комментарии к мосту linq: http://www.albahari.com/nutshell/linqbridge.aspx

Во-первых, важно понимать что C # 3.0 и Framework 3.5 являются предназначен для работы с CLR 2.0 - то же самое Версия CLR, которую использует Framework 2.0. Это означает, что компилятор C # 3.0 испускает код IL, который работает на том же виртуальная машина, как и раньше.

Это делает Framework 3.5 аддитивным - просто как Framework 3.0 был добавка - содержащая дополнительные сборки, которые расширяют существующие 2.0 Framework и CLR. Так что ничто не мешает нам писать наши собственные сборки, которые делают работу Framework 3.5 (по крайней мере, критический биты, необходимые для локальных запросов LINQ).

Затем компилятор ищет Где, Методы OrderBy и Select. важно то, что он может найти соответственно названные методы с правильные подписи (обычно методы расширения). Но это не так независимо от того, какие сборки методы приходят от. LINQBridge просто обеспечивает другой источник этих методов - это функционально идентичны тем, реализовано в Framework 3.5 сборок.

...