为什么要创建 'net6.0-windows' 子文件夹?

Why is 'net6.0-windows' sub folder created?

我正在使用 visual studio 2022 并创建了一个 winforms .net 6 应用程序。我为要创建 .exe 的发布版本指定了输出路径,但是 visual studio 创建了一个名为 'net6.0-windows' 的子文件夹并将 exe 放在那里。我如何停止它并让它把 exe 放在我指定的地方?

一些背景:我正在将 .Net Framework 4.8 Winforms 升级到 .Net 6。在 .net Framework 中,它将 exe 放在指定的输出文件夹中(没有子文件夹)。我想保持相同的行为,因为其他文件和实用程序也需要在该文件夹中或在该文件夹中查找。

visual studio

中指定的输出路径

[]

实际输出路径

[]

我将提供以下信息以供参考和回答问题。

您可以通过将以下 属性 添加到您的项目文件来防止将 TargetFramework 添加到输出文件夹。

<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>

此外,您可以防止添加 RuntimeIndentifier(例如 win-x64),如果有的话,将此 属性 设置为 false:

<AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>

你应该这样做吗?

也许不是。这些目录存在是有原因的:允许多个 TargetFramework(版本)and/or 并行运行多个 RuntimeIndentifier(否则输出会以不正当的方式混合)。