日期:2014-05-18  浏览次数:20808 次

关于程序发布的问题
我用c#做了一个C/S项目,然后用自带的发布工具发布(项目-->右健-->属性-->发布-->立即发布),这样程序会在publish目录下产生setup.exe的安装程序,如果要给10个用户用的话,每个用户都需要安装一遍,如果将来这个项目稍有改动,我需要重新发布新的exe文件,用户就必须卸载原来的程序,然后安装新的程序文件,非常繁琐,请问高手有没有好的简便一点的方法?请说详细点!

------解决方案--------------------
C/S应用程序的部署本来就是头疼的,除非你愿意做个自动更新的功能
------解决方案--------------------
可以在你的solution里新建一个setup project: 右键点solution,add new project 找到 setup project。
这样就可以配置setup的属性,其中有一项是detectNewerInstalledVersion,选false。

然后右键setup project,add project output,将primary output设定成你的应用程序的project,之后还可以指定所有你的项目所包含的各种文件,以及存储路径。

设定完成后右键点setup project,build。这样就能得到经过设定的installer了。

我觉得将setup project做成solution中一个独立project比较好,对于setup过程也是可编程的,有各种event,可以根据需要定制代码。
------解决方案--------------------
http://www.itpub.net/thread-899916-1-1.html
------解决方案--------------------
1.数据库中增加一个版本表来管理你需要同步到客户端的文件信息,包括文件名,目录,文件版本,文件内容(文件内容存放的是实际的文件用Text或者Image方式存储). 
2.以压缩包的方式进行管理,压缩包命名已代日期格式命名,如AAA_20080307.rar.压缩包放在外网供大家访问. 
3.版本升级时通过比较数据库中的最大版本日期和网上补丁包的版本日期得到需要升级的补丁包. 
4.升级时是将补丁包内容写入版本表,不复制文件到客户端目录. 
5.客户端登陆时比较客户端本地文件和数据库版本表中具体文件的版本,将有差异的文件同步到本地. 

这样处理的好处是当有很多客户端时,只需要1台机器连到外网升级,且只需要升级一次,所有客户端都通过从数据库同步的方式得到最新版本.