【发布时间】:2022-01-02 13:00:52
【问题描述】:
我正在使用 Visual Studio 2022 并创建了一个 winforms .net 6 应用程序。我为我的发布版本指定了一个输出路径,我希望在其中创建 .exe,但 Visual Studio 创建了一个名为“net6.0-windows”的子文件夹并将 exe 放在那里。我该如何阻止它并让它将 exe 放在我指定的位置?
一些背景:我正在将 .Net Framework 4.8 Winforms 升级到 .Net 6。在 .net 框架中,它将 exe 放在指定的输出文件夹中(没有子文件夹)。我想保持相同的行为,因为其他文件和实用程序也需要在其中或查看该文件夹。
Visual Studio 中指定的输出路径
[]
实际输出路径
[]
【问题讨论】:
-
您的 .csproj 是否包含属性
或 ?当在同一个构建中针对多个框架时,它将执行您所看到的操作。 -
这是默认和预期的行为 - Winforms 是 Windows-only,所以您真正的目标是
.net6-windows,因此这就是您获得的子文件夹。你可以停止这个 - 你需要习惯它并接受它...... -
.NET 6 是 .NET Core 6。运行时特定的文件夹是默认的,可能从 .NET Core 1.0 开始。 .NET Core 应用程序可能针对不同的运行时,因此不可能将所有内容都放入
bin\Release -
I want to keep with the same behavior您不再使用 .NET Framework,而是使用 .NET Core。工具希望在正确的位置找到文件。bin\Release甚至不包含已发布的二进制文件,它们位于publish文件夹中。如果您发布单文件可执行文件,构建文件夹仍将包含单个文件,而publish文件夹将包含单个.exe。如果要创建安装程序,则必须使用publish文件夹中的运行时特定文件,而不是bin\Release文件夹
标签: .net visual-studio winforms .net-5 .net-6.0