Package Deployment

Posted on 2004-11-25
Last Modified: 2013-11-22

I have created a big program in VB6 on an windows XP Professional machine.  In the office I have multiple platforms (XP, and Windows 2000).  When I create the package deployment using the wizzard in VB on my XP machine, I can successfully install the program on other XP machines.  

However when I try to install the program on Windows 2000 machines, the setup prompts me for updating system files and reboot.  When I say Yes, the program updates the files, reboots and somehow the OS of windows 2000 gets corrupted at that point and the computer does not reboot anymore and I get a message saying Operating System not found.

I used to bypass the problem by compiling running the package deployment wizzard on a windows 98 machine in the office and then the setup would work on any machine I would install.  This windows 98 computer died and I cannot use any other computer to re-install VB and re build the package.

Is there a way that I can have the package bundled so that I can install it on any computer using my Windows XP PRO to create the package?


Question by:markrhyman
    LVL 11

    Expert Comment

    Its basically a version problem, see which files are creating problems. List down all the DLLs OCX files etc and see what is getting overwritten. Critical system files cannot be overwritten with newer versions unless there is backward compatiblity. its best if you use some other installation kit which supports multiple platforms. Installshield for example. If you are looking for an opensource alternative you could try NSIS,

    Have Fun!
    LVL 19

    Accepted Solution

    Your best bet is to compile the program on the lowest OS version your clients may have. For example, consider Windows 9x clients as Windows 4.0, Windows 2000 clints as Windows 5.0 and Windows XP as Windows 6.0. Now compile your program on the lowest required, i.e. Windows 2000. Your problem should be gone. Give it a try.

    Author Comment

    Hmm. This does not seem very obvious.  I tried the NSIS and I have to create an install script with registry values etc...  I have no experience of manually adding registry values to make my program work.  

    What do you mean by "See which files are getting overwritten"?  I can only see that after the file has been modified, therefore it's too late.  I have to reformat the machine, reconfigure domain on that machine which is a nightmare.  

    Author Comment

    RanjeeRain, that's what I used to be doing before the windows 98 machine died.

    I agree that this was the simplest way for doing this.  I guess I might have to find an old machine and make my package on it.

    LVL 11

    Expert Comment

    what i meant was to check the dependencies.. you remember the wizard page where it lists all the dlls/ocx files referenced by the vb project? or simply open your setup.lst file that should give you the list, please post the list if you can. or just make sure that none of the code system DLLs are included in the list (for example kernel32, user32, ntdll and so on)

    Author Comment

    Here is the Setup.lst

    SetupText=Copying Files, please stand by.

    [Bootstrap Files]
    File1=@VB6STKIT.DLL,$(WinSysPathSysFile),,,7/15/00 12:00:00 AM,101888,
    File2=@COMCAT.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,5/30/98 11:00:00 PM,22288,4.71.1460.1
    File3=@STDOLE2.TLB,$(WinSysPathSysFile),$(TLBRegister),,6/3/99 12:00:00 AM,17920,2.40.4275.1
    File4=@ASYCFILT.DLL,$(WinSysPathSysFile),,,3/8/99 12:00:00 AM,147728,2.40.4275.1
    File5=@OLEPRO32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,3/8/99 12:00:00 AM,164112,5.0.4275.1
    File6=@OLEAUT32.DLL,$(WinSysPathSysFile),$(DLLSelfRegister),,4/12/00 12:00:00 AM,598288,2.40.4275.1
    File7=@msvbvm60.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/4/04 2:56:43 AM,1392671,



    Title=Ipecac - Setup

    [Setup1 Files]
    File1=@MSWINSCK.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),12/6/00 12:00:00 AM,109248,
    File2=@MSCOMCTL.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/6/02 8:13:00 AM,1077344,
    File3=@MSSTDFMT.DLL,$(WinSysPath),$(DLLSelfRegister),$(Shared),7/15/00 12:00:00 AM,118784,
    File4=@MSDATGRD.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),12/6/00 12:00:00 AM,262328,
    File5=@MSMAPI32.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),6/24/98 12:00:00 AM,137000,
    File6=@msflxgrd.ocx,$(WinSysPath),$(DLLSelfRegister),$(Shared),5/7/99 4:24:42 AM,244232,
    File7=@MSCOMCT2.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),5/22/00 12:00:00 AM,647872,
    File8=@msmask32.ocx,$(WinSysPath),$(DLLSelfRegister),$(Shared),5/22/00 4:58:12 PM,166600,
    File9=@COMDLG32.OCX,$(WinSysPath),$(DLLSelfRegister),$(Shared),5/22/00 12:00:00 AM,140488,
    File10=@RICHED32.DLL,$(WinSysPathSysFile),,,5/6/98 11:00:00 PM,174352,4.0.993.4
    File11=@Richtx32.ocx,$(WinSysPath),$(DLLSelfRegister),$(Shared),5/22/00 12:00:00 AM,203976,
    File12=@msvcrt.dll,$(WinSysPathSysFile),,,8/4/04 2:56:43 AM,343040,7.0.2600.2180
    File13=@scrrun.dll,$(WinSysPath),$(DLLSelfRegister),$(Shared),8/4/04 2:56:44 AM,151552,
    File14=@MSOUTL.OLB,$(WinSysPath),,$(Shared),2/9/01 8:01:20 AM,206240,10.0.2607.0
    File15=@CDOEX.DLL,$(WinSysPath),$(DLLSelfRegister),$(Shared),9/23/03 6:30:59 AM,3915776,6.0.6511.0
    File16=@CDO.DLL,$(WinSysPath),,$(Shared),10/30/02 9:39:10 AM,813328,5.5.2656.94
    File17=@MSDBRPTR.DLL,$(WinSysPath),$(DLLSelfRegister),$(Shared),7/15/00 12:00:00 AM,299008,
    File18=@MSBIND.DLL,$(WinSysPath),$(DLLSelfRegister),$(Shared),7/15/00 12:00:00 AM,77824,
    File19=@VB5DB.DLL,$(WinSysPath),,$(Shared),6/17/98 11:00:00 PM,89360,
    File20=@msjtes40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/4/04 2:56:43 AM,241693,4.0.8618.0
    File21=@msrepl40.dll,$(WinSysPathSysFile),,,8/4/04 2:56:43 AM,552989,4.0.8015.0
    File22=@msrd3x40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/4/04 2:56:43 AM,315423,4.0.6508.0
    File23=@msrd2x40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/4/04 2:56:43 AM,421919,4.0.7328.0
    File24=@mswdat10.dll,$(WinSysPathSysFile),,,8/4/04 2:56:44 AM,831519,4.0.6508.0
    File25=@mswstr10.dll,$(WinSysPathSysFile),,,8/4/04 2:56:44 AM,614429,4.0.8905.0
    File26=@expsrv.dll,$(WinSysPathSysFile),,,8/4/04 2:56:42 AM,380957,
    File27=@vbajet32.dll,$(WinSysPathSysFile),,,8/4/04 2:56:46 AM,30749,
    File28=@msjint40.dll,$(WinSysPathSysFile),,,8/4/04 2:56:43 AM,151583,4.0.8905.0
    File29=@msjter40.dll,$(WinSysPathSysFile),,,8/4/04 2:56:43 AM,53279,4.0.6508.0
    File30=@msjet40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,8/4/04 2:56:43 AM,1507356,4.0.8618.0
    File31=@dao360.dll,$(MSDAOPath),$(DLLSelfRegister),$(Shared),8/4/04 2:56:42 AM,561179,3.60.8618.0
    File32=@msado27.tlb,$(WinSysPath),,$(Shared),8/4/04 12:21:44 AM,81920,2.81.1117.0
    File33=@psapi.dll,$(WinSysPath),,$(Shared),8/4/04 2:56:44 AM,23040,5.1.2600.2180
    File34=@Ipecac.exe,$(AppPath),,,11/18/04 8:55:31 PM,3964928,


    Author Comment

    Using the NSIS I managed to create the Script with the scipt wizzard but I don't see any place to register the OCX and dll.  This is what is a bit painful.

    LVL 11

    Assisted Solution

    dlls which could create the problem

    psapi.dll <-- this might be critical

    Try getting the least version possible and try compiling it.. without breaking your code

    MSBIND.dll is also known to create problems with kernel32 references

    Author Comment

    I'll try to unckech these Dll's which creating the Package and let you know very soon how it worked.

    Author Comment

    Ok I did remake the Project and I had to write down all the dll that were being registered during installation because all what Pratap_r mentionned above were being registered and others like

    ssrun.dll. ,msvcrt.dll and mswstr10.dll, Msdao27.tlb, mscommctl.ocx, msjint40.dll, msout.olb.

    So I did unckeck all these and the installation worked fine.  Therefore, I guess one or more of these above are causing the problem.  

    I will have to figure which one but meanwhile the new module works on all versions in the office.

    I will however recompile the whole project on win 98 later on to make this work

    Therefore I will award both of you points.

    Thanks a lot for all your help.

    LVL 1

    Expert Comment

    not sure if im posting this message in the correct directory..

    does any1 know how to make a java program (containing .class and .java file) to be able
    to be installed first by user before using it..
    not to confuse with that , it means a user with that cd needs to install the program in order to run the converted from .java/.class file into .exe file..
    it has something gotta do with 'installer' ... but not sure how to do it
    need to put my java program into a cd n 'distribute' to my lecturer...haha

    help guys..thanks

    Expert Comment

    This is a tricky problem.

    Notice the following number ... 4.0.9025.0

    File42=@msjet40.dll,$(WinSysPathSysFile),$(DLLSelfRegister),,7/19/04 7:56:44 PM,1507600,4.0.9025.0

    My main visual basic computer is a Windows/2000 and I made the mistake of updating the above distribution file to the XP/pro version, instead of the W/2000 version with MS04-014 which was 4.0.8618.0

    This msjet40.dll must be compatible with the operating system that you are using.

    Looks like we need the oldest one in the distribution package.

    Write Comment

    Please enter a first name

    Please enter a last name

    We will never share this with anyone.

    Featured Post

    How to run any project with ease

    Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
    - Combine task lists, docs, spreadsheets, and chat in one
    - View and edit from mobile/offline
    - Cut down on emails

    Suggested Solutions

    Title # Comments Views Activity
    thread-safe code in c++ 2 58
    Run video youtube webbrowse 10 36
    oracle global variables 4 36
    wordappend challenge 8 45
    Introduction I have seen many questions in this Delphi topic area where queries in threads are needed or suggested. I know bumped into a similar need. This article will address some of the concepts when dealing with a multithreaded delphi database…
    Since upgrading to Office 2013 or higher installing the Smart Indenter addin will fail. This article will explain how to install it so it will work regardless of the Office version installed.
    In this fourth video of the Xpdf series, we discuss and demonstrate the PDFinfo utility, which retrieves the contents of a PDF's Info Dictionary, as well as some other information, including the page count. We show how to isolate the page count in a…
    In this seventh video of the Xpdf series, we discuss and demonstrate the PDFfonts utility, which lists all the fonts used in a PDF file. It does this via a command line interface, making it suitable for use in programs, scripts, batch files — any pl…

    759 members asked questions and received personalized solutions in the past 7 days.

    Join the community of 500,000 technology professionals and ask your questions.

    Join & Ask a Question

    Need Help in Real-Time?

    Connect with top rated Experts

    7 Experts available now in Live!

    Get 1:1 Help Now