I have a multi-platform solution with many csproj
files configured this way:
<PropertyGroup>
<TargetFrameworks>net452;netstandard1.4</TargetFrameworks>
</PropertyGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard1.4' ">
<PackageReference Include="System.Net.Http" Version="4.3.0"/>
<PackageReference Include="Newtonsoft.Json" Version="9.0.1" />
</ItemGroup>
<ItemGroup Condition=" '$(TargetFramework)' == 'net452' ">
<Reference Include="System.Net" />
<Reference Include="System.Net.Http" />
<PackageReference Include="Newtonsoft.Json" Version="6.0.8" />
</ItemGroup>
Note that I don't have a TargetFramework
element (the singular form). I only have the TargetFrameworks
element (the plural form).
The editor assumes netstandard1.4
and all #if NET452
blocks get grayed out and without IntelliSense.
How can I tell Visual Studio editor to recognize a specific target framework (net452
, netstandard1.4
), and get IntelliSense, at least temporarily?
For reference, I'm using VS2017 Professional version 15.2 (26430.16).
To enable x64 as a CPU platform targetClick Configuration Manager. In the Configuration Manager dialog, open the Active solution platform drop-down list box and click <New> …. In the New Solution Platform dialog, select x64 in the Type or select the new platform drop-down list box.
Right-click on your project. Select Properties. Select the Application tab. Change the Target Framework to the desired framework.
On the menu bar, choose Build > Configuration Manager. In the Active solution platform list, choose a platform for the solution to target, and then choose the Close button. If the platform that you want doesn't appear in the Active solution platform list, choose New.
Here's the answer:
#if
blocks according to the selected framework.TargetFrameworks
, even if the text is grayed at editor.All in all, it was just my learning curve.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With