VS控制台应用程序 - 将所有库编译为exe

时间:2009-12-08 16:56:45

标签: c# console-application

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

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

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

感谢您的帮助,

弗兰科

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

您可以创建设置文件。所以你只能重新分配一个文件。 但它仍然会被安装到一个文件夹中,每个程序集都会分开。

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

答案 3 :(得分:0)

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