【问题标题】:How can I deploy a C# console application as a single exe? [duplicate]如何将 C# 控制台应用程序部署为单个 exe? [复制]
【发布时间】:2017-03-25 13:20:24
【问题描述】:

我已经搜索过这个并且有许多以前的答案,但似乎都过于复杂。

我通常是 C# 和 Windows 开发的新手(以前的 Mac 开发人员)。

我使用 Visual Studio 社区版用 C# 编写了一个简单的控制台应用程序。我的应用程序使用两个第三方库(CommandLineParser 和 json.NET)从 VS 中通过 NuGet 添加到我的项目中。

我想要做的就是将我的项目构建为一个独立的 .exe 文件,该文件可以简单地从命令提示符运行,而不必担心最终用户必须安装大量 DLL(我不习惯作为新的 Windows 用户处理)。我了解最终用户需要安装 .NET 框架。是否有在我的用例中构建单个 .exe 文件的防白痴指南?

我不禁认为这一定是一个非常普遍的问题。

谢谢。

【问题讨论】:

  • 这确实很常见。但是,没有默认的解决方案所以这个问题。我从来不需要它,但我知道一个名为 Fody.Costura 的 nuget 包,它能够将你的依赖项(dll 和东西)作为资源打包到应用程序中。另一个可能性是 ILMerge,它基本上做同样的事情
  • 不知道你用的是什么版本的vs。使用 vs 2013,您可以使用 installshield 限量版(免费),它也做得很好。简单、直接的 gui,就在与引导式 ui 的对比中。它会检查 .net 等依赖项,并在需要时将它们安装在客户端上等。您还可以配置以添加二进制文件。你最终得到一个文件夹和一个 setup.exe
  • Fody Costura 看起来是解决方案。谢谢。

标签: c# .net visual-studio


【解决方案1】:

或者,如果您想运行 adhoc 测试以查看它确实有效并且相对较快地完成它,您可以尝试使用ILMerge-GUI

我以前一直在努力单独使用 ILMerge。使用 GUI,我可以更快地验证我可以让一切正常工作。

【讨论】:

    【解决方案2】:

    您可以将库与ILMerge 合并,并在 Visual Studio 中将其作为构建后事件运行。这将创建一个包含所有库的 exe。您将找到有关 ILMerge here 的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      相关资源
      最近更新 更多