【问题标题】:Visual Studio 2019 C# Console Application VS Console App (.NET Framework) Publish Window DifferentVisual Studio 2019 C# 控制台应用程序 VS 控制台应用程序(.NET Framework)发布窗口不同
【发布时间】:2022-01-27 12:09:55
【问题描述】:

在控制台应用程序中,发布窗口如下所示。

但是,在 Console App (.NET Framework) 中,发布是这样的。

我的项目在 C# 控制台应用程序 (.NET Framework) 中,我想发布为“文件夹”。我怎样才能做到这一点?控制台应用程序不支持 Framework 4.7.2,所以我使用的是控制台应用程序 (.NET Framework)。

已编辑: 我想将我的项目作为单个 exe 发布,但我无法使用控制台应用程序 (.NET Framework) 发布窗口进行发布。它会生成 .application、.config、.manifest 文件。

【问题讨论】:

  • 您可以点击Browse按钮并选择应用程序的发布位置,然后点击下一步。
  • @Chetan 它只是更改了位置,输出文件仍然相同。
  • 你期待的不同是什么?
  • 我想将我的项目作为单个 exe 发布,但我无法使用控制台应用程序 (.NET Framework) 发布窗口。
  • @Brian Antiqueña,根据我的研究,Console App(.NET Framework) 不支持为 Visual Studio Functions 生成单个 exe。如果确实如此,您可以在 Developer Community 中请求功能。

标签: c# visual-studio


【解决方案1】:

.NET Framework 无法做到这一点。有(外部)工具,例如 ILMerge 可以做到这一点,但 .NET 框架本身不可用,此功能不可用。检查此主题:How do I merge multiple .net assemblies into a single assembly?。或者,您可以更改为 .NET 5.0 来获得该功能。

【讨论】:

  • 我不打算将多个程序集合并为一个,我只是希望我的主 C# 控制台项目在发布时生成一个 exe,如果它生成 dll 就可以了。我的问题是每当我使用控制台应用程序(.NET 框架)发布窗口进行发布时,它还会生成 .application、.config、.manifest 文件,这些文件可以使用控制台应用程序发布窗口来避免。
  • 如果它生成这些文件,您将需要它们,否则可能会出现意外行为。为什么你认为你可以省略它们?
  • 就像我在您的评论上面所说的,可以使用控制台应用程序发布窗口来避免/省略。
  • 那么也许我误解了你的问题。您能否更具体地说明您如何处理上面提到的两种不同情况?不是因为这两个项目针对不同的运行时?
  • 控制台应用程序使用 .NET Core,而另一个使用 .NET Framework。我已经在您的答案中尝试了 ILMerge,它可能是比我正在寻找的更好的替代答案。谢谢
猜你喜欢
  • 2019-01-18
  • 2010-12-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-04-20
相关资源
最近更新 更多