在C#中部署控制台应用程序的方法

我有一个相对复杂的控制台应用程序依靠几个DLL。 我想以最好的forms“运送”这个。 我最喜欢的方式将是一个exe文件中embedded的所有依赖(不是那么大,约800K)。 另一件事是只压缩“debugging”文件夹的内容,并使其可用,但我不知道是否所有的东西都可以这样(所有的依赖关系只需通过压缩debugging文件夹解决?)

使用VisualStudio 2008部署用C#编写的控制台应用程序有哪些可靠的实践?

如果你只是复制Foo.exe,dll和Foo.exe.config文件,它可能会好起来的。 看看debug文件夹里还有什么东西 – 你可能不想发布.pdb文件或者Foo.vshost.exe。 还有别的事吗? 如果您将任何标记为“内容”的项目复制到输出文件夹,您也需要这些项目。

可以使用ilmerge把所有的依赖关系放到一个exe文件中,但是我对这个方法有些不解 – 我会坚持使用exe + dependency dll。

您应该查看Visual Studio中的安装项目 。 他们让你设置依赖关系,并包含你需要的DLL。 最终的结果是一个setup.exe和一个MSI安装程序。

这是一个应该帮助的演练 。

或者你可以使用一个自解压ZIP文件。 将所有普通文件 – .exe,.dll,.config和其他东西 – 打包成一个zip文件。 解压缩到一个临时目录中,并将运行解压缩程序设置为实际的控制台exe文件。

在VS08中创build一个安装项目,并将控制台应用程序项目的主要输出添加到它,这解决了依赖关系,并将它们打包到一个.msi