假设您有一个如下所示的 .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
部分之一将变灰 - DoSomething
或 DoSomethingElse
。这是它在我的笔记本电脑上的显示方式:
是否可以让 VS 在目标平台之间“切换上下文”,以便您可以查看将为特定平台编译的内容?例如,在实际构建解决方案之前,我可能想检查每个框架是否有红色波浪线。
如有任何帮助,我们将不胜感激,谢谢!
编辑器的顶部应该是导航栏。导航栏中的左侧是一个下拉菜单,可让您选择上下文。
如果导航栏被隐藏,您可以通过进入“工具”>“选项”>“文本编辑器”>“C#”并选中导航栏复选框来启用它。
已经提供的答案似乎大部分是正确的。我只想强调目前存在的一些问题。
截至今天,在 VS 2015 Community Ed,版本 14.0.25424.00 Update 3,global.json sdk 1.0.0-preview2-003121,仅当启动项目是多目标“可执行文件”时,导航栏才会显示多个目标“ 一个(例如控制台应用程序)。
如果在多目标类库上设置启动,则不会列出目标开关(并且绿色箭头旁边的标签也不同):
此外,当可以使用切换器时,似乎由构建系统提供的“标准”条件定义在编辑器中未正确突出显示:
为了看到条件定义块正确突出显示,必须切换项目切换器,在上一张屏幕截图中以绿色突出显示。为此,同一项目中的不同目标似乎被视为不同的项目。对于在编辑器中打开的任何文件都可以独立更改。