Использование сборок .net 3.5 в веб-приложении asp.net 2.0 - PullRequest
2 голосов
/ 21 мая 2010

У меня сборка .net против 3.5 framework. Эта сборка имеет класс Foo с двумя переопределениями методов:

public class Foo {
    public T Set<T>(T value);
    public T Set<T>(Func<T> getValueFunc);
}

Я ссылаюсь на эту сборку в моем веб-приложении asp.net 2.0, чтобы использовать первое переопределение метода Set (без Func).

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

Есть ли способ решить эту проблему?

PS: Нет возможности конвертировать мое веб-приложение с таргетингом на 3.5.

Ответы [ 3 ]

2 голосов
/ 21 мая 2010

Преобразуйте ваше веб-приложение для использования .NET 3.5 (или 4.0). После этого все будет хорошо.

Если вам нужно придерживаться .NET 2.0, вот мои идеи

  • Попробуйте сослаться на сборку System.Core, перейдя к dll и добавив ее вручную. .NET Framework 3.5 использует тот же CLR, что и 2.0, поэтому он должен работать, если в нем нет испорченных ссылок. (например, материал из .NET 3.5, который вы не можете добавить)
0 голосов
/ 21 мая 2010

Тот факт, что вы не вызываете конкретную перегрузку в своем коде, не означает, что компилятор может игнорировать его, если он существует в используемом вами классе, то компилятору необходимо знать, что это такое. Вам нужно либо ссылаться на System.Core, либо конвертировать ваш проект для использования .net 3.5

0 голосов
/ 21 мая 2010

Вы должны обновить свое веб-приложение до .net 3.5, чтобы это работало, или перекомпилировать сборку из soce, ориентируясь на .net 2.0, если это вообще возможно.

...