日期:2014-05-17  浏览次数:21053 次

C# 升级包(本地覆盖安装)
大家好,目前有个需求,就是更新已经安装的软件,其实很简单,就是把dll及exe替换成最新的就行了。

目前我是这样实现的,制作了一个winform程序,然后把exe所处路径的更新文件夹中的文件覆盖到安装目录,完成更新,但是这样呢,有时候客户以为更新文件就是一个exe,就拷贝到别的地方执行了。。。因而就找不到更新的文件了。

能不能把这些文件都打包在exe中,然后exe执行时,拿到的更新文件就是从自身里面提取出来的?
winform c# 升级包

------解决方案--------------------
思路其实比较简单,让升级程序和升级包保证"相互可见"就行了
方法一:
将升级文件(建议打成zip包)放到系统目录(比如C:\Docume~\AllUser\ApplicationData\XXX)
AllUser目录一般对所有用户都可读写

方法二:
将升级Zip包作为资源文件嵌入到winfrom程序中,运行后将zip资源解压出来再升级
读写嵌入式资源
http://www.cnblogs.com/zhangjun1130/archive/2011/04/11/2012566.html

------解决方案--------------------
我新手,不过我做过类似的事情。我给你个建议吧,与其用C#写代码的方式,不如用INNO setup安装升级的方式来做,这样做的效果更好。而且更简单。至于INNO setup的代码,也很简单,要的话我再给你。我公司就是做产品的,也有软件,软件经常要更新,更新就一般更新EXE而已,也就一两M的事,初次回复,可能啰嗦了点。