本人在win7操作系统中,通过vb6自带的打包工具(Package & Deployment Wizard)打包安装文件,在windows xp中安装时出现“Setup cannot continue because some system files are out of date on your system.”的提示,具体见下图
因本人的vb为英文版,中文提示可以自行翻译对照,后在网上搜索过程中发现了相关解决方法。见下帖
转自http://www.xtremevbtalk.com/archive/index.php/t-248653.html
Setup cannot continue because some system files are out of date on your system.
"Setup cannot continue because some system files are out of date on your system. Click OK if you would like setup to update these files for you now. You will need to restart Windows before you can run setup again. Click cancel to exit setup without updating system files."
Microsoft addresses this issue in their Help and Support (http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/Q191/0/96.ASP&NoWebContent=1) and proposes 8 solutions.
However,I found out that the problem was coming from the Bootstrap files in the Setup.LST file.
If you open Setup.LST (generated with the wizard) you'll see something like this:
File1=@VB6STKIT.DLL,$(WinSysPathSysFile),3 25 99 11:00:00 PM,101888,6.0.84.50
File2=@MSVCRT40.DLL,5 30 98 11:00:00 PM,326656,4.21.0.0
File3=@COMCAT.DLL,$(DLLSelfRegister),22288,4.71.1460.1
File4=@stdole2.tlb,$(TLBRegister),8 23 01 1:00:00 PM,17920,3.50.5014.0
File5=@asycfilt.dll,8 4 04 8:56:41 AM,65024,5.1.2600.2180
File6=@olepro32.dll,8 4 04 8:56:44 AM,83456,5.1.2600.2180
File7=@oleaut32.dll,553472,5.1.2600.2180
File8=@msvbvm60.dll,8 4 04 8:56:43 AM,1392671,6.0.96.90
Files 1 through 3 are needed to run your VB 6.0 program,but Files 4 through 8 were the ones that were "out of date" and caused the error. Since the host PC will most certainly have these files,there is no need for your program to install them (or even update them). So you can just insert a colon ";" in front of the lines for File 4 through 8 for the installation to ignore these commands.
So open your Setup.LST and change it like this:
[Bootstrap Files]
File1=@VB6STKIT.DLL,4.71.1460.1
;File4=@stdole2.tlb,3.50.5014.0
;File5=@asycfilt.dll,5.1.2600.2180
;File6=@olepro32.dll,5.1.2600.2180
;File7=@oleaut32.dll,5.1.2600.2180
;File8=@msvbvm60.dll,6.0.96.90
Save it,close it,and try installing your program again.
[B]Note: You may have other DLL files than those listed above,so you have to make sure which ones are the one out of date.
Hope this helps some of you out there.
安装的目标操作系统应该可以通过在打包时选择不同操作系统(文件夹名称)的文件“oleaut32.dll”来进行打包(需要将文件“oleaut32.dll”拷贝到当前路径下再进行打包),也可以在与目标操作系统相同的环境中进行打包,有兴趣的朋友可以自己试一下。
上面说了因版本冲突可以通过忽略文件的方式进行安装。但在实际安装过程中有时候未必是上面帖子提到的[Bootstrap Files]项中的几个文件引起的,也有可能是其他文件引起的,本人安装包的问题就是因为其他文件("msimg32.dll")的版本冲突引起,具体见下图
出现该问题只需要用";"符号忽略该文件即可。
[Setup1 Files]项中的
File19=@msimg32.dll,$(WinSysPath),$(Shared),7/14/09 9:15:44 AM,4608,6.1.7600.16385
File20=@GIF89.DLL,6/25/08 4:29:06 PM,44544,1.1.0.1
改为
;File19=@msimg32.dll,6.1.7600.16385
File19=@GIF89.DLL,1.1.0.1
即可。
保存文件后,尝试重新安装,如出现其他文件的版本问题,按上面方式操作即可。
目前本人通过该方式解决了安装包在不同操作系统上安装出现版本冲突的问题。仅仅作为记录,以方便以后查找。