如何在Visual Studio中切换.NET Core项目的目标框架

假设您有一个如下所示的.NET Core项目:

"frameworks": { "net40": {}, "dotnet5.1": {} } 

这是你的C#代码:

 public class Foo { public static void Blah() { #if DOTNET5_1 DoSomething(); #elif NET40 DoSomethingElse(); #endif } } 

现在,在Visual Studio中查看.cs文件时,其中一个#if部分将显示为灰色 – DoSomethingDoSomethingElse 。 以下是我在笔记本电脑上的显示方式:

在此处输入图像描述

是否有可能让VS在目标平台之间“切换上下文”,以便您可以查看为特定平台编译的内容? 例如,在实际构建解决方案之前,我可能想要检查每个框架的任何红色波浪线。

任何帮助将不胜感激,谢谢!

在编辑器的顶部应该是导航栏。 导航栏左侧是一个下拉菜单,可让您选择上下文。

如果导航栏被隐藏,您可以通过进入工具>选项>文本编辑器> C#启用它,然后选中导航栏复选框。

已提供的答案似乎大多正确。 我想强调目前存在的一些问题。

截至今日,在VS 2015 Community Ed,版本14.0.25424.00 Update 3, global.json sdk 1.0.0-preview2-003121上,只有当启动项目是多目标“可执行”项目时,导航栏才会显示多个目标(例如控制台应用程序)

多目标切换器可见

如果在多目标类库上设置启动,则不会列出目标开关(绿色箭头旁边的标签也不同):

多目标切换器不可见

此外,当可以使用切换器时,似乎构建系统提供的 “标准”条件定义未在编辑器中正确突出显示:

在此处输入图像描述

为了看到正确突出显示的条件定义块,必须切换项目切换器 ,在最后一个屏幕截图中以绿色突出显示。 似乎同一项目中的不同目标被视为此目的的不同项目。 对于在编辑器中打开的任何文件,可以独立更改。