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

时间:2009-06-02 13:15:38

标签: c# visual-studio console

我有一个相对复杂的控制台应用程序,它依赖于几个dll。我想以最好的形式“运送”这个。我首选的方式是一个exe文件,其中嵌入了所有依赖项(不是那么大,大约800K)。另一件事就是只是压缩“Debug”文件夹的内容并使其可用,但我不确定是否所有内容都可以使用(只需通过压缩调试文件夹解决所有依赖项?)

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

5 个答案:

答案 0 :(得分:41)

如果您只是复制Foo.exe,dlls和Foo.exe.config文件,它可能没问题。看看调试文件夹中的其他内容 - 您(可能)不想发送.pdb文件或Foo.vshost.exe。还有别的事吗?如果您有任何标记为内容的项目被复制到输出文件夹,那么您也需要这些项目。

可以使用ilmerge将所有依赖项放入一个exe文件中,但我对这种方法有点怀疑 - 我坚持使用exe +依赖dll。

答案 1 :(得分:12)

您应该在Visual Studio中查看setup projects。它们允许您设置依赖项并包含所需的DLL。最终结果是setup.exe和MSI安装程序。

这是一个应该有帮助的walkthrough

答案 2 :(得分:2)

或者您可以使用自解压ZIP文件。将所有普通文件 - .exe,.dll,.config和其他任何内容 - 打包到一个zip文件中。解压缩到临时目录并将run-on-extract程序设置为实际的控制台exe。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

您可以使用wix安装程序将其捆绑。对于控制台应用程序,使用exe +依赖DLL + nuget DLL,将它们压缩即可。