2009-12-16 2 views
2

Мы можем переключиться на другую цель .NET Framework в Visual Studio после 2008Могу ли я использовать прекомпиляции символ, чтобы определить, какой код фрагмента будет составлен, когда переключение целевой базы в Visual Studio

У меня есть проект, и я хотите построить две различные целевые структуры сборки. Если моя цель Framework 2.0, я хочу, чтобы построить какой-то код, и при переходе на другую целевую Framework, я хочу, чтобы построить еще один фрагмент кода, чтобы использовать некоторые новые функции.

теперь я должен вручную комментировать и раскомментировать код везде, интересно, если я могу использовать некоторые символы прекомпиляции динамически сделать это для меня. Нравится:

#if Framework3 
<do something> 
#else 
<do something else> 
#endif 

Могу ли я?

+0

Это может быть дубликат http://stackoverflow.com/questions/408908/conditional-compilation-depending-on-the-framework-version-in-c – Costo

+0

Да, я этого не заметил. Но, похоже, я получил гораздо более элегантное решение, чем это. :) – redjackwong

ответ

2

Да, мы делаем это в MiscUtil. Я не уверен, что вы можете сделать это непосредственно в Visual Studio, поскольку выбор целевой структуры находится на странице свойств, которая игнорирует текущую конфигурацию. Однако вы можете напрямую отредактировать файл проекта, чтобы получить правильную целевую структуру для правильной конфигурации. В частности, вы захотите убедиться, что у вас нет ссылок .NET 3.5 при настройке .NET 2.0. Посмотрите наш основной файл проекта (MiscUtil.csproj) для более подробной информации.

Символ препроцессора части легко - как только вы получили конфигурацию сборки для .NET 2.0 вы можете добавить препроцессор символы непосредственно в Visual Studio.

+0

Я прочитал ваш код, и я должен сказать, что изменить файл проекта напрямую, если он блистателен. Это то, что я хочу, я думаю. Спасибо. – redjackwong

1

Просто определить в параметрах сборки до компиляции для каждой рамочной версии.

  1. Добавить Framework3
  2. Compile для .NET Framework 3.5
  3. Изменения в Framework2
  4. Compile для .NET Framework 2,0

Это еще ISN» t как автоматическое, как вы, вероятно, хотите чтобы быть, но это лучше, чем раскомментировать кучу строк, на мой взгляд.

0

Да, вы можете установить определенные константы в свойствах проекта. Лучший способ управлять этим, imho, состоит в том, чтобы иметь отдельные файлы проекта, которые используют код, но имеют разные определенные константы. Итак, mycode_Framework1.csproj, mycode_Framework2.csproj и т. Д. Вы можете использовать их в одном и том же решении или нет, но если вы это сделаете, это упростит их все сразу.

+0

Общий код в проектах очень хрупкий по моему опыту - легко забыть добавить новый файл во все проекты. Жаль, что Visual Studio не справляется с этим видом элегантно. –

 Смежные вопросы

  • Нет связанных вопросов^_^