如何将 Windows Forms 应用程序 (C#) 制作成单个 exe 文件?

How do I make a Windows Forms app (C#) into a single exe file?

我正在使用 Visual Studio 2013

我刚刚用它制作了我的第一个 windows 应用程序(一个 windows 表单),如果可能的话,我想将库和 config/manifest 等文件嵌入到一个单个可执行文件,更方便。可以吗?如果有怎么办?

非常感谢

您无论如何都不应该部署 bin\Release 文件夹中的所有文件。 vshost 文件用于在 Visual Studio 中进行调试,不应部署它们。 pdb文件用于调试,不需要部署。如果您的应用程序不将配置文件用于任何您不需要部署它的地方。不过,您将需要部署任何其他程序集,您可以使用 ILMerge 解决这些问题。

话虽如此,我的建议是创建一个安装程序或创建一个自执行存档(zip 或 7z),而不是尝试使用 ILMerge 来获取与您的应用程序一起部署的任何第三方程序集。

更新

为了清楚起见,这是我添加的默认 WinForms 应用程序的文件列表 JSON.NET(发布版本):

  • Newtonsoft.Json.dll
  • Newtonsoft.Json.xml
  • WindowsFormsApplication1.exe
  • WindowsFormsApplication1.exe.config
  • WindowsFormsApplication1.pdb
  • WindowsFormsApplication1.vshost.exe
  • WindowsFormsApplication1.vshost.exe.config
  • WindowsFormsApplication1.vshost.exe.清单

如果应用不使用配置文件,您需要部署的文件只有 Newtonsoft.Json.dllWindowsFormsApplication1.exe