Вопрос

Мне нужно усвоить код условным по версии CLR.
Например, есть код, который мне нужен только в CLR 2 (.NET 3.5 VS2008), а не в CLR 4 (.NET 4 VS2010)
Есть ли директива для предварительногокомпьюлеров для текущей версии CLR, которую я могу использовать в предложении #IF?

Спасибо.

Это было полезно?

Решение

Не так, как я знаю.

Попробуйте использовать свой собственный, например:

#if CLR_V2
  #if CLR_V4
    #error You can't define CLR_V2 and CLR_V4 at the same time
  #endif

  code for clr 2

#elif CLR_V4

  code for clr 4

#else
  #error Define either CLR_V2 or CLR_V4 to compile
#endif

И затем вы можете определить CLR_V2 и/или CLR_V4 в окне свойств проекта Visual Studio или аргументы командной строки CSC.

Другие советы

Вы всегда можете добавить что -то в свой скрипт MSBuild, который проверяет версию CLR, а затем условно определяет и передает символ препроцессора компилятору, который можно проверить внутри кода с #IF.

да это так Условные директивы они выглядят как предварительные материалы C

РЕДАКТИРОВАТЬ: Полностью неправильно прочитайте этот вопрос - время для перерыва

Согласно с здесь ответ нет. Анкет Однако один трюк, который мы используем, состоит в том, чтобы поместить конкретный код версии в сборки, которые загружаются во время выполнения. Затем вы можете получить версию CLR во время выполнения System.Runtime.InterOpservices.RuntimeEnvironment.GetRuntimedIrectory ().

Специфический код версии составлен с использованием объекта таргетинга, доступного с C#3.5 и далее.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top