使用VB自带的打包程序生成了一个CAB包,包里包含若干个ocx、dll和文本文件,其中a.ocx是主要文件。
现在问题是,程序版本升级,从浏览器中将CAB包下载后,a.ocx正常更新为新版本,但是几个文本文件(a.properties,b.properties)没有更新,还是原来的文件。CAB包下载后,文件更新的原则是什么样的?全部覆盖?还是只覆盖版本变化的?像我这种情况应该怎么设置才能让那几个文本文件更新为最新的??
CAB包的INF文件主要内容如下:
[a.ocx]
file-win32-x86=thiscab
RegisterServer=yes
clsid={A5E7B62F-364E-4BF9-9B6B-C5B93F911EE2}
DestDir= 
FileVersion=1,2,0,0[a.properties]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11 
FileVersion=0,0,0,0[b.properties]
file-win32-x86=thiscab
RegisterServer=no
DestDir=11 
FileVersion=0,0,0,0[comdlg32.ocx]
file-win32-x86=thiscab
RegisterServer=yes
clsid={F9043C85-F6F2-101A-A3C9-08002B2F49FB}
DestDir=11
FileVersion=6,0,84,18[Mscomctl.ocx]
file-win32-x86=thiscab
RegisterServer=yes
clsid={1EFB6596-857C-11D1-B16A-00C0F0283628}
DestDir=11
FileVersion=6,0,88,62[mswinsck.ocx]
file-win32-x86=thiscab
RegisterServer=yes
clsid={248DD896-BB45-11CF-9ABC-0080C7E7B78D}
DestDir=11
FileVersion=6,0,89,88[mscomct2.ocx]
file-win32-x86=thiscab
RegisterServer=yes
clsid={B09DE715-87C1-11D1-8BE3-0000F8754DA1}
DestDir=11
FileVersion=6,0,88,4[MSVBVM60.DLL]
file-win32-x86=thiscab
RegisterServer=yes
DestDir=11
FileVersion=6,0,96,90[OLEAUT32.DLL]
file-win32-x86=thiscab
RegisterServer=yes
DestDir=11
FileVersion=2,40,4275,1[OLEPRO32.DLL]
file-win32-x86=thiscab
RegisterServer=yes
DestDir=11
FileVersion=5,0,4275,1[COMCAT.DLL]
file-win32-x86=thiscab
RegisterServer=yes
DestDir=11
FileVersion=4,71,1460,1[RegisterFiles]
%11%\COMCAT.DLL
%11%\OLEPRO32.DLL
%11%\OLEAUT32.DLL
%11%\MSVBVM60.DLL
%11%\mscomct2.ocx
%11%\mswinsck.ocx
%11%\Mscomctl.ocx
%11%\comdlg32.ocx
%11%\a.ocx

解决方案 »

  1.   

    //重新打包,卸载掉程序后重新安装。卸载掉程序后重新安装当然可以,但不是解决问题的最好方式啊,总不能每次版本升级都让用户卸载掉重新安装,那样给用户的印象太差了。
    最好还是要自动更新文件。//不是所有的文件都要更新吧,只要程序能运行就可以了。
    现在的问题就是出在那两个文本文件(a.properties,b.properties)上,这两个文件是程序(a.ocx)的资源文件,没有他们不行。