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