Рекомендации по использованию синтаксиса .NET 3.0 и компиляции для 2.0, пожалуйста - PullRequest
1 голос
/ 10 марта 2011

Будет ли DLL-библиотека, созданная с использованием компилятора 3.0, но нацеленная на инфраструктуру 2.0, определенно работать на машинах с только средой выполнения 2.0?

Подробности: На сегодняшний день мы строим с использованиемКомпилятор .NET 2.0 для обеспечения совместимости с версией 2.0.Теперь мы хотели бы включить сторонний источник с синтаксисом 3.0, но нам все еще нужно быть совместимым с версией 2.0.Поэтому мы рассматриваем возможность перехода на компилятор 3.0 для наших производственных сборок, но нацеливаемся на инфраструктуру 2.0.

Хотя кажется, что это должно работать, это немного пугает, поэтому нам очень хотелось бы услышать откто-то, кто попробовал это.

Ответы [ 4 ]

3 голосов
/ 10 марта 2011

Вы можете использовать следующие функции C # 3, все еще ориентируясь на среду выполнения 2.0:

  • Автоматически реализованные свойства
  • Инициализаторы объекта / коллекции
  • Неявно типизированные локальные переменные/ arrays
  • Анонимные типы
  • Лямбда-выражения

Вы можете использовать следующие функции C # 3 со средой выполнения 2.0 с hack :

  • Методы расширения

Вы не можете использовать следующее:

  • Расширения LINQ
  • синтаксис запроса
0 голосов
/ 10 марта 2011

Пока сторонняя библиотека не ссылается на библиотеки, не входящие в целевую среду выполнения, у вас все в порядке. C # 3.0 компилируется в код IL так же, как C # 2.0, и все синтаксические добавления ограничены только языком C #.

0 голосов
/ 10 марта 2011

Всё хорошо. .NET 3.5 и выходные данные компилятора C # 3.0 двоично совместимы с компилятором .NET 2.0.

0 голосов
/ 10 марта 2011

Да , это будет работать, потому что расширения компилятора просто синтаксический сахар.Просто убедитесь, что он использует правильный пакет обновления.

...