Можно ли добавить ссылку на System.Core.dll (.net 3.5) в приложение .net 2.0 и использовать ее? - PullRequest
8 голосов
/ 05 мая 2009

Могу ли я добавить ссылку на System.Core.dll (.net 3.5) в приложение .net 2.0 и использовать ее

Я пытаюсь использовать класс TimeZoneInfo, который доступен только в .net 3.5, ссылаясь на System.Core.dll

В качестве альтернативы есть альтернатива TimeZoneInfo в .net 2.0 (или индивидуальный класс)

Ответы [ 5 ]

11 голосов
/ 05 мая 2009

Нет, ты действительно не должен . Вы должны установить 3.5 на целевой машине, иначе вы столкнетесь с непредсказуемым поведением в работающей программе. Платформа 3.5, включая System.Core.dll, зависит от нескольких исправлений ошибок / функций, которые были добавлены в CLR 2.0 SP1 (это часть платформы 3.5). Если вы работаете с непатентованным CLR, вы, по сути, будете запускать непроверенный код и, скорее всего, столкнетесь с несколькими ошибками.

6 голосов
/ 05 мая 2009

Скотт Хансельман написал сообщение в блоге, описывающее , как запустить раннюю версию MVC на платформе 2.0. Он отметил, что зависимости от System.Core , вероятно, будут в порядке, если вы будете очень осторожны, чтобы не вызывать подпрограммы, зависящие от функций CLR, специфичных для 3.0+ (например, LINQtoSQL).

Он справедливо намазал пост в блоге заявлениями об отказе, что он не поддерживается, он вполне может не сработать для вас, но он заставил его работать, и если вы можете, тогда ура для тебя.

3 голосов
/ 05 мая 2009

Я не уверен, что вы можете сделать это с System.Core.dll, но мы делали это раньше с dll Linq2Sql для приложения .net 2.0. .net 3.5 использует ту же версию CLR с новыми сборками, созданными на основе среды выполнения .net 2.0. Если вы можете получить все зависимости, может работать. Как я уже сказал, это работает для нас с dll Linq2Sql, но не гарантируется для всех сценариев. (Например, вы, вероятно, не сможете запустить WPF в Windows 2000, но, возможно, сможете заставить работать Linq to Objects)

0 голосов
/ 18 сентября 2009

Вы можете сделать это, в настоящее время делая то же самое для инструмента для работы - также использовать материал TimeZoneInfo. Пока это все, что вы используете, вы не должны сталкиваться с какими-либо проблемами (по крайней мере, у меня нет).

Однако я не совсем уверен в законности объединения System.Core с вашим приложением. Из того, что я знаю, тебе нельзя.

В итоге я использовал один из Mono для инструмента, который его использует.

0 голосов
/ 05 мая 2009

.net 3.5 работает в среде .net 2.0. Таким образом, вы должны быть в состоянии использовать его ... Но ссылка на одну DLL приведет к неожиданному поведению, поскольку вы не знаете всех зависимостей system.core.dll .... Я бы порекомендовал не делать этого ...

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