Директива препроцессора С# или условие для различения Visual Studio 2012 и 2010?

У меня есть код C#, который работает только в Visual Studio 2012, но я также использую Visual Studio 2010 на той же кодовой базе. Есть ли директива препроцессора или условное выражение, которое я могу использовать для изоляции кода?


person parsley72    schedule 24.08.2013    source источник


Ответы (1)


Насколько я знаю, нет встроенной директивы препроцессора, но есть переменная MSBuild.

Откройте файл проекта (выгрузите его в обозревателе решений, затем нажмите «Изменить») и добавьте следующее после основного набора объявлений свойств.

<PropertyGroup Condition="'$(VisualStudioVersion)' == '10.0'">
  <DefineConstants>$(DefineConstants);VS_10;</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(VisualStudioVersion)' == '11.0'">
  <DefineConstants>$(DefineConstants);VS_11;</DefineConstants>
</PropertyGroup>

Затем вы можете использовать директивы preproc VS_10 (VS 2010) или VS_11 (VS 2012).

person kiwidev    schedule 24.08.2013