我有一个相对复杂的控制台应用程序,它依赖于几个dll。我想以最好的形式“运送”这个。我首选的方式是一个exe文件,其中嵌入了所有依赖项(不是那么大,大约800K)。另一件事就是只是压缩“Debug”文件夹的内容并使其可用,但我不确定是否所有内容都可以使用(只需通过压缩调试文件夹解决所有依赖项?)
使用VisualStudio 2008部署用C#编写的控制台应用程序有哪些可靠的做法?
答案 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,将它们压缩即可。