Я использую условия препроцессора в своем исходном коде для создания другого кода на основе 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>