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

问题描述 投票:0回答:3

假设您有一个如下所示的 .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
。这是它在我的笔记本电脑上的显示方式:

enter image description here

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

如有任何帮助,我们将不胜感激,谢谢!

c# .net visual-studio visual-studio-2015 asp.net-core
3个回答
39
投票

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

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


20
投票

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

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

multi-target switcher visible

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

multi-target switcher not visible

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

enter image description here

为了看到条件定义块正确突出显示,必须切换

项目切换器,在上一张屏幕截图中以绿色突出显示。为此,同一项目中的不同目标似乎被视为不同的项目。对于在编辑器中打开的任何文件都可以独立更改。


0
投票
我提出这个问题是因为我正在做 MAUI 项目。要在目标之间进行选择,请单击

Debug

 按钮右侧的三角形图标,然后单击 
Framework
,然后选择您要使用的环境。

enter image description here

标签栏下方还有另一个选择:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.