【问题标题】:VS console app - compile all libraries into an exeVS 控制台应用程序 - 将所有库编译成 exe
【发布时间】:2009-12-08 16:56:45
【问题描述】:

我在 Visual Studio 2008 中创建了一个基本的控制台应用程序,它引用了一个外部程序集。

当我发布和安装项目时,可执行文件和外部程序集都安装在目标文件夹中。

是否可以编译项目,并将所有引用的程序集包含在主可执行文件中 - 所以只有一个文件可以分发?

感谢您的帮助,

弗兰科

【问题讨论】:

    标签: c# console-application


    【解决方案1】:

    您可以使用ILMerge 合并程序集以进行部署。这使您可以在开发过程中将它们分开,但在发布时将它们全部放入一个 .exe 文件中。

    【讨论】:

    • 谢谢 - 正是我想要的!
    【解决方案2】:

    您可以使用 Microsoft 的 ILMerge 或 Mono 项目中的 Cecil 工具。

    【讨论】:

    • Cecil 不合并程序集。好吧,你可以用它写一个合并,但没有内置功能。
    【解决方案3】:

    您可以创建一个安装文件。因此您只能重新分发一个文件。 但它仍然会安装到一个文件夹中,每个程序集都是分开的。

    您也可以考虑将您的程序集放入 GAC。

    【讨论】:

    • 不,GAC 会使事情变得不必要地复杂化。
    • @Henk,我不推荐它。刚刚指出这个选项是可用的。
    【解决方案4】:

    如果您发现 ILMerge 不够,因为您的应用程序需要 .net 程序集以外的文件,我发现使用 MakeSFX 将其打包为自解压 exe 效果很好。这听起来不太可能,但使用正确的命令行标志,自提取位是完全透明的,它可以像任何其他应用程序一样运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-07-04
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-14
      相关资源
      最近更新 更多