Winform 升级解决方法之EXE资源文件解压更新
2010-08-27 19:13
435 查看
Winform 升级解决方法之EXE资源文件解压更新
Winform 程序经常会遇到升级的问题,下面介绍一个用C#生成exe文件自解压的升级解决方法。思想如下:
一、把要升级的文件当作资源文件,生成一个EXE程序;
二、下载上面生成的EXE文件到本地;
三、把EXE中包含的资源文件读出来,并保存到一个目录;
四、用解压出来的文件覆盖原运行程序相差文件。
这里需要了解下资源文件,Winform程序中,增加资源文件时,程序会把文件保存为二进制文件,并且会打包到EXE程序里。所以就可以实现一个EXE文件里包含需要更新的文件了。解压更新文件则可以调用EXE本身的方法,从自己的资源文件中读出来并保存在一个目录中。
具体过程如下:
主要代码是从EXE资源文件中解压出更新文件,可以调用
File.WriteAllBytes(string sPath,byte[] sBytes)方法实现,该方法是从一个byte[]中读取文件并保存到sPath。sPath要求包含文件名称。
如方法
File.WriteAllBytes(m_sDownPath +"\\Contract.dll", Resources.Contract);
其中Contract为增加的资源文件Contract.dll
Winform 程序经常会遇到升级的问题,下面介绍一个用C#生成exe文件自解压的升级解决方法。思想如下:
一、把要升级的文件当作资源文件,生成一个EXE程序;
二、下载上面生成的EXE文件到本地;
三、把EXE中包含的资源文件读出来,并保存到一个目录;
四、用解压出来的文件覆盖原运行程序相差文件。
这里需要了解下资源文件,Winform程序中,增加资源文件时,程序会把文件保存为二进制文件,并且会打包到EXE程序里。所以就可以实现一个EXE文件里包含需要更新的文件了。解压更新文件则可以调用EXE本身的方法,从自己的资源文件中读出来并保存在一个目录中。
具体过程如下:
主要代码是从EXE资源文件中解压出更新文件,可以调用
File.WriteAllBytes(string sPath,byte[] sBytes)方法实现,该方法是从一个byte[]中读取文件并保存到sPath。sPath要求包含文件名称。
如方法
File.WriteAllBytes(m_sDownPath +"\\Contract.dll", Resources.Contract);
其中Contract为增加的资源文件Contract.dll
相关文章推荐
- Android系统切换语言的时候APP无法更新资源文件的解决方法
- Winform项目中无法引用资源文件中图片的解决方法
- 用RAR做自解压exe文件的方法
- 编译找不到且不能升级vc90.pdb文件解决方法
- 解压tar.gz文件报错gzip: stdin: not in gzip format解决方法
- 解决 Xcode 5 资源文件更新后不自动复制的问题
- safari下载文件自动追加exe后缀解决方法
- 打开某个AVI文件,explorer.exe遇到问题需要关闭的解决方法
- IIS 7.5 设置允许下载exe文件的解决方法
- 升级Win8.1或安装系统更新后导致VS无法打开工程(或未找到与约束。。)的原因和解决方法
- IE6升级IE7后,URL文件图标变成“无关联文件图标”的解决方法
- vs2008无法识别工具版本3.5或未找到编译器可执行文件 csc.exe的解决方法
- PhpStorm中报 “Cannot run program git.exe, 系统找不到指定的文件” 错误的解决方法
- 更新文件避免浏览器缓存的解决方法(源码)
- 编资源bundle时图片文件变成tiff的解决方法
- python 检索文件资源的方法 =>长期更新
- 上传文件资源时报错提示未找到资源解决方法
- Qt2010.05 的ui文件更改后没有更新,以及解决方法
- VS 属性和资源文件打开失败的解决方法
- pod升级以及更新不到最新的第三方库解决方法