如何在 VisualStudio 2022 中正确地将 Linux 定位为目标操作系统?

Chr*_*ris 7 .net visual-studio .net-6.0 visual-studio-2022

我正在 VisualStudio 2022 中开发 .NET6.0 控制台应用程序。该应用程序将在 Linux 上运行。

在项目属性/应用程序/常规中,有一个“目标操作系统”设置。下拉列表允许我从以下操作系统中进行选择:

在此输入图像描述

没有 Linux 选项,因此我将其设置为(无),并在“发布配置文件”中使用“目标运行时”作为“linux-x64”发布应用程序时:

在此输入图像描述

...它在 Linux 上运行没有问题。

但由于应用程序设置的下拉菜单中没有 Linux 选项,因此我的问题是:

  1. 是每个人都这样吗,还是我的VS安装缺少什么?
  2. 此设置是否会影响构建?因为(无)似乎没有任何效果,并且发布配置文件中的设置似乎具有最终决定权。
  3. 如果我想针对 Linux 发布,(None) 设置是否合适,或者会产生任何影响吗?

小智 9

None是正确的,因为Target OS它没有任何额外的东西。所有其他目标框架都包含特定于平台的功能。(就像WPF相关的命名空间一样Windows)。另一种看待它的方式是None=Everywhere

您可能感兴趣的是RuntimeIdentifierRuntimeIdentifiers您的.csproj.

对于您的情况,您可能需要以下内容:

<RuntimeIdentifier>linux-x64</RuntimeIdentifier>
Run Code Online (Sandbox Code Playgroud)

通过此设置,编译器/Visual Studio 将警告您有关指定平台之一上不可用的方法的使用情况。Console有一些只能在 Windows 上运行。

有关 RID 的更多信息请参见此处。