Roy*_*mir 3 c# compiler-directives visual-studio visual-studio-2019
我正在使用 Visual Studio 2019 和基于 SDK 的项目,具有多个目标:
<TargetFrameworks>netstandard2.0;net45;net46</TargetFrameworks>
Run Code Online (Sandbox Code Playgroud)
但是当我编写条件代码时,我(显然)看到一些灰色代码和一些常规颜色代码:
问题:
哪些设置决定哪些部分将呈灰色,哪些部分不会?因为现在,如果我想编辑“ NETFULL”部分(因为我是多目标),它都是灰色的,而且我没有智能感知。
我如何告诉 VS:现在让我们切换到NETFULL模式?
注意:当然我可以删除该条件,但我想知道为什么它是灰色的以及如何在它们之间切换(因为我是多目标)
要在您定位的框架之间切换,请使用代码窗格左上角的下拉菜单:
条件编译符号在 .csproj 文件中声明:
<PropertyGroup Condition="'$(TargetFramework)' == 'net45' OR '$(TargetFramework)' == 'net46'">
<DefineConstants>NETFULL</DefineConstants>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)
或者您可以使用预定义符号,例如NETFRAMEWORK、NETSTANDARD或NETCOREAPP(或版本化预定义符号,例如NETSTANDARD2_0)。