如何在 Visual Studio 2022 中将 Linux 正确定位为目标 OS?

How to properly target Linux as Target OS in VisualStudio 2022?

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

在项目 Properties/Application/General 中,有一个“目标 OS”设置。下拉列表允许我从以下选项中进行选择 OS':

没有 Linux 选项,所以我将其设置为 (None) 并且在“发布配置文件”中使用“目标 运行time”发布应用程序时 'linux-x64':

...运行 Linux 没问题。

但是因为在应用程序设置的下拉菜单中没有Linux选项,所以我的问题是:

  1. 每个人都是这种情况,还是我的 VS 安装中缺少某些东西?
  2. 此设置是否会影响构建 - 因为 (None) 似乎没有任何影响,而且发布配置文件中的设置似乎有最终决定权。
  3. 如果我想为 Linux 发布,(None) 设置是否合适,或者会有任何后果吗?

None 对于 Target OS 是正确的,因为它没有任何额外的东西。所有其他目标框架都包含 platform-specific 功能。 (如 WPF 相关命名空间在 Windows 下)。另一种看待它的方式是 None=Everywhere

您可能感兴趣的是在 .csproj 中设置 RuntimeIdentifierRuntimeIdentifiers

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

<RuntimeIdentifier>linux-x64</RuntimeIdentifier>

有了这个集合,compiler/Visual Studio 会警告您使用在指定平台之一上不可用的方法。 Console 有一些只适用于 Windows。

More about RIDs here.