Компилятор C # устанавливает версию или константы платформы? - PullRequest
2 голосов
/ 11 марта 2009

Существуют ли предопределенные константы в компиляторе C # для определения целевой версии платформы?

Я могу установить платформу в параметрах проекта, но как мне написать единый источник для .NET 2 и .NET 3.5?

Редактировать: я действительно хочу написать код один раз и иметь возможность переключать поведение с помощью чего-то вроде #if CLR_VERSION35 а затем рН разных конфигураций.

Обратный вопрос: если я сделаю конфигурации CLR35 и CLR20, возможно ли выбрать целевую платформу на основе этого? Опция недоступна в VS2008, и я пока немного знаю о MSBUILD.

Ответы [ 3 ]

5 голосов
/ 11 марта 2009

.NET Framework 3.5 - это расширенный набор 2.0, поэтому все приложения 2.0 должны работать на 3.5 без изменений. Поскольку это надмножество, нет никакого способа отступить, чтобы не использовать функциональность 3.5, если ваше приложение оказывается на 2.0, но это не имеет смысла в любом случае.

Если вам нужно нацелиться на 2.0, и вы можете написать то, что вам нужно, в 2.0, то это путь, 3.5 все равно будет нормально работать с вашим приложением. По сути, вы должны написать для наименьшего общего знаменателя или включить распространяемые среды выполнения 3.5 вместе с вашим установщиком, чтобы убедиться, что у вашего клиента есть правильная среда для вашего приложения.

2 голосов
/ 11 марта 2009

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

1 голос
/ 11 марта 2009

Кроме DEBUG и RELEASE, насколько я знаю, не так много. Я бы сохранил поиск и просто определил свои собственные в свойствах проекта, вкладку «Сборка», «Условные символы компиляции».

Там есть больше информации о этом блоге , если это используется

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