Visual Studio переключает контекст на основе RuntimeIdentifier в дополнение к TargetFramework

Я использую условия препроцессора в своем исходном коде для создания другого кода на основе RuntimeIdentifier. Тем не менее, код всегда недоступен, так как я не могу выбрать контекст, основанный как на TargetFramework, так и на RuntimeIdentifier.

В панели навигации Visual Studio я могу переключаться между net461 и netstandard2.0. Как я могу переключаться между TargetFramework и RuntimeIdentifier, чтобы сделать мой код активным?

Вот фрагмент кода, который я хочу сделать активным (не выделен серым): введите здесь описание изображения

Я использую Visual Studio 2017 версии 15.9.23.

Вот фрагмент моего csproj:

<PropertyGroup>
  <TargetFrameworks>net461;netstandard2.0</TargetFrameworks>
  <RuntimeIdentifiers>win-x64;linux-x64</RuntimeIdentifiers>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'netstandard2.0'">
  <DefineConstants>NETCORE;NETSTANDARD;NETSTANDARD2_0</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' == 'net461'">
  <DefineConstants>NET461;NETFULL</DefineConstants>
</PropertyGroup>
<PropertyGroup>
  <DefineConstants Condition="'$(RuntimeIdentifier)' == 'win-x64'">$(DefineConstants);WINDOWS</DefineConstants>
</PropertyGroup>
<PropertyGroup>
  <DefineConstants Condition="'$(RuntimeIdentifier)' == 'linux-x64'">$(DefineConstants);LINUX</DefineConstants>
</PropertyGroup>

person Simon    schedule 04.06.2020    source источник
comment
Переключение между целевыми платформами является обязательной функцией VS, поскольку профили компиляции различаются. Однако ваши пожелания по идентификатору времени выполнения не являются обязательными, потому что это обычная условная компиляция (поскольку вы используете свои собственные константы. Кстати, почему бы не использовать обнаружение ОС во время выполнения? stackoverflow.com/questions/38790802/   -  person Lex Li    schedule 05.06.2020
comment
Спасибо, Лекс Ли. Я знаком с определением во время выполнения. Спасибо!   -  person Simon    schedule 06.06.2020