2016-10-20 2 views
-1

У меня есть старый проект (написанный и скомпилированный в .Net 2.0), он огромен, и многие другие проекты ссылаются на это. Планируется вывести его из эксплуатации, но это займет некоторое время. Я хотел бы представить новую версию этого проекта, где будут добавлены новые функциональные возможности, и будет представлен .NET 4.5.1. Я хочу, чтобы все старые функциональные возможности старого проекта были доступны из нового Project2 и только. Без преобразования старого проекта из .Net 2.0 без необходимости ссылаться на dll Project1, когда Project2 уже ссылается.Обтекание устаревшего проекта .NET в проекте .Net 4.5

Я знаю, что проекты, скомпилированные для .NET ниже 4.5.1, не смогут ссылаться на Project2 (из-за более высокой несовместимости .net), Project2 является частью нового мира, созданного для отказа от устаревшего кода.

Как я могу это достичь? В настоящее время я наследую все публичные классы (~ 150 из них), он работает, но мне все же нужно ссылаться на DLL старого проекта.

+1

вы не можете, как вы заявили. –

ответ

1

Вы можете создать промежуточную сборку, которая ссылается на вашу старую сборку и новую замену. Затем из любых будущих проектов он мог бы просто ссылаться на посредническую сборку. Это позволит вам работать в своем собственном темпе, чтобы постепенно заменить функциональность в старой сборке функциональностью новой сборки, не влияя на код более высокого уровня, который ссылается на нее.

+0

Хмм, как мост между обоими из них ... Я проверю это. Я думал, что, может быть, есть какая-то волшебная технология, которая может позволить мне достичь моей цели, и я этого не знаю, но, как мы видим, есть жизнь, а не магия. – Vilo

0

Как об этом:

  1. Создать новое решение
  2. Добавить проект этого решения и установить его версию .Net 2 (проект 1)
  3. Добавить еще один проект этого решения и множества его .Net версия до 4.5 (проект 2)
  4. Yo может добавлять классы (файлы исходного кода) из проекта 1 в проект 2, добавляя «Существующие элементы» и удостоверяя, что вы добавляете их в качестве ссылки (щелкните стрелку вниз в «Add'button» в диалоговом окне с открытым файлом). Или вы можете просто скопировать код файлов в проект 2 (дублирующие код)

Каждый проект будет иметь другое имя DLL и может быть в другой версии

+0

Для связанного проекта по-прежнему необходимо ссылаться на связанную DLL параллельно с новым проектом, я думаю. Да, мы не хотим дублировать код. – Vilo

+0

Также взгляните на это: https://msdn.microsoft.com/en-us/library/7wd6ex19(v=vs.110).aspx – Sparrow

+0

Спасибо, но версия для версии полностью не проблема, все .Net выше 2.0 может использовать большинство материалов из версии 2.0. Проблемы касаются скрытия Project1 от пользователя. – Vilo