在 Visual Studio 2019 年的编译器指令之间切换?
Switching between compiler directives in Visual Studio 2019?
我正在使用 Visual Studio 2019 和基于 SDK 的项目,有多个目标:
<TargetFrameworks>netstandard2.0;net45;net46</TargetFrameworks>
但是当我写条件代码时,我看到(很明显)一些代码是灰色的,一些代码是常规颜色的:
问题:
哪些设置决定哪些部分是灰色的,哪些不是?
因为现在,如果我想编辑“NETFULL
”部分(因为我是多目标),它全是灰色的,而且我没有智能感知。
如何告诉 VS:现在让我们切换到 NETFULL
模式?
注意
当然我可以删除条件,但我想知道为什么它是灰色的以及如何在它们之间切换(因为我是多目标)
重新定义 TargetFrameworks。使用相同的语法,只需输入其他目标即可。
这是您在项目属性中定义的条件编译符号的问题。
导航到项目的属性选项卡和 select 构建选项卡。在那里你可以定义那些符号。
要在目标框架之间切换,请使用代码窗格左上角的下拉菜单:
Conditional-compilation 符号在 .csproj 文件中声明:
<PropertyGroup Condition="'$(TargetFramework)' == 'net45' OR '$(TargetFramework)' == 'net46'">
<DefineConstants>NETFULL</DefineConstants>
</PropertyGroup>
或者您可以使用 ,例如 NETFRAMEWORK
、NETSTANDARD
或 NETCOREAPP
(或版本化的预定义符号,例如 NETSTANDARD2_0
)。
我正在使用 Visual Studio 2019 和基于 SDK 的项目,有多个目标:
<TargetFrameworks>netstandard2.0;net45;net46</TargetFrameworks>
但是当我写条件代码时,我看到(很明显)一些代码是灰色的,一些代码是常规颜色的:
问题:
哪些设置决定哪些部分是灰色的,哪些不是?
因为现在,如果我想编辑“NETFULL
”部分(因为我是多目标),它全是灰色的,而且我没有智能感知。
如何告诉 VS:现在让我们切换到 NETFULL
模式?
注意 当然我可以删除条件,但我想知道为什么它是灰色的以及如何在它们之间切换(因为我是多目标)
重新定义 TargetFrameworks。使用相同的语法,只需输入其他目标即可。
这是您在项目属性中定义的条件编译符号的问题。
导航到项目的属性选项卡和 select 构建选项卡。在那里你可以定义那些符号。
要在目标框架之间切换,请使用代码窗格左上角的下拉菜单:
Conditional-compilation 符号在 .csproj 文件中声明:
<PropertyGroup Condition="'$(TargetFramework)' == 'net45' OR '$(TargetFramework)' == 'net46'">
<DefineConstants>NETFULL</DefineConstants>
</PropertyGroup>
或者您可以使用 NETFRAMEWORK
、NETSTANDARD
或 NETCOREAPP
(或版本化的预定义符号,例如 NETSTANDARD2_0
)。