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

Это из-за этой строки:

def test(a,v=fval()):

В Python аргументы по умолчанию разрешаются один раз, при определении функции.

Вам, вероятно, нужно будет сделать что-то вроде этого:

def test(a, v=None):
    if v is None:
        v = fval()

    # the rest here
8
задан 5 May 2009 в 02:22
поделиться

5 ответов

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

11
ответ дан 5 December 2019 в 08:25
поделиться

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

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

6
ответ дан 5 December 2019 в 08:25
поделиться

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

0
ответ дан 5 December 2019 в 08:25
поделиться

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

3
ответ дан 5 December 2019 в 08:25
поделиться

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

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

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

0
ответ дан 5 December 2019 в 08:25
поделиться
Другие вопросы по тегам:

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