【发布时间】:2009-12-08 16:56:45
【问题描述】:
我在 Visual Studio 2008 中创建了一个基本的控制台应用程序,它引用了一个外部程序集。
当我发布和安装项目时,可执行文件和外部程序集都安装在目标文件夹中。
是否可以编译项目,并将所有引用的程序集包含在主可执行文件中 - 所以只有一个文件可以分发?
感谢您的帮助,
弗兰科
【问题讨论】:
我在 Visual Studio 2008 中创建了一个基本的控制台应用程序,它引用了一个外部程序集。
当我发布和安装项目时,可执行文件和外部程序集都安装在目标文件夹中。
是否可以编译项目,并将所有引用的程序集包含在主可执行文件中 - 所以只有一个文件可以分发?
感谢您的帮助,
弗兰科
【问题讨论】:
您可以使用ILMerge 合并程序集以进行部署。这使您可以在开发过程中将它们分开,但在发布时将它们全部放入一个 .exe 文件中。
【讨论】:
您可以创建一个安装文件。因此您只能重新分发一个文件。 但它仍然会安装到一个文件夹中,每个程序集都是分开的。
您也可以考虑将您的程序集放入 GAC。
【讨论】:
如果您发现 ILMerge 不够,因为您的应用程序需要 .net 程序集以外的文件,我发现使用 MakeSFX 将其打包为自解压 exe 效果很好。这听起来不太可能,但使用正确的命令行标志,自提取位是完全透明的,它可以像任何其他应用程序一样运行。
【讨论】: