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

Der*_*unk 41 c# console visual-studio

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

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

Jon*_*eet 41

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

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

  • 怎么样......编译发布模式? (2认同)
  • 您应该有一个包含较少文件的/ bin/Release文件夹(如果我没记错的话),/ bin/Debug将包含所有调试内容. (2认同)
  • 只是避免复制pdb文件.您*可以*更改"高级"下的设置以阻止它们被构建(IIRC)但是最简单的方法就是不要复制它们. (2认同)

bri*_*ien 12

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

这是一个应该有用的演练.

  • 控制台应用程序的整个安装项目?这有点矫枉过正吗? (5认同)
  • 实际上,您可以非常快速地创建一个安装项目,只需将您需要的dll和exe复制到客户端计算机上的正确位置即可. (2认同)
  • 您不必包含图标,开始菜单快捷方式或修改注册表.您可以非常简单地进行安装项目.您正在尝试创建您正在使用的工具中已存在的内容(但形式稍微复杂一些).当您谈论打包应用程序并进行部署时,这通常意味着您需要一个安装项目.如果您以后决定要部署更复杂,那么您已经有了这样的工具. (2认同)