在Visual Studio 2019中的编译器指令之间切换?

时间:2019-06-08 09:27:22

标签: c# visual-studio visual-studio-2019 compiler-directives

我将Visual Studio 2019与基于SDK的项目一起使用,并具有多个目标:

<TargetFrameworks>netstandard2.0;net45;net46</TargetFrameworks>

enter image description here

但是当我编写条件代码时,我(显然)看到一些灰色代码和一些常规颜色代码:

enter image description here

问题:

哪些设置决定哪个部分将显示为灰色而哪个部分将不显示? 因为现在,如果我要编辑“ NETFULL”部分(因为我是多目标的),则全部为灰色,并且没有智能提示。

如何告诉VS:现在让我们切换到NETFULL模式?

NB 当然可以删除条件,但是我想知道为什么它是灰色的,以及如何在它们之间切换(因为我是多目标)

3 个答案:

答案 0 :(得分:1)

在.csproj文件中声明您的条件编译符号:

<PropertyGroup Condition="'$(TargetFramework)' == 'net45' OR '$(TargetFramework)' == 'net46'">
  <DefineConstants>NETFULL</DefineConstants>
</PropertyGroup>

使用代码窗格左上方的下拉菜单在要定位的框架之间切换:

enter image description here enter image description here

答案 1 :(得分:0)

这是在项目属性中定义的条件编译符号问题。

导航到项目的“属性”选项卡,然后选择“构建”选项卡。在那里您可以定义这些符号。

enter image description here

答案 2 :(得分:-1)

重新定义TargetFrameworks。使用相同的语法,只需放入其他目标。