/build/static/layout/Breadcrumb_cap_w.png

Incorporating External Cab Files into the MSI

Hi All,

Is there any Option to Incorporate External CAB Files (Sometimes external files and folders also)inside the MSI itself. The Scenario is something like this, In Vendor MSI's We usually get External cabs, instead of inbuilt cabs, Is there any option in Installshield which helps us to have a single executable(MSI) by incorporating these external cab Files.


Thanks in Advance,
Dev

0 Comments   [ + ] Show comments

Answers (5)

Posted by: spartacus 18 years ago
Black Belt
1
Hello again,

You could use the WiMakCab.vbs utility supplied with the Windows Installer SDK (itself part of the Microsoft Platform SDK for Windows Server 2003 SP1).

This procedure should work :-

First perform an administrative installation of the original vendor's MSI using

msiexec /a <MSI Package.msi>

to a temporary folder of your choice.

Place the WiMakCab.vbs script file in the same administrative installation folder you just created.

Launch a command prompt window with the administrative folder set as the default, then issue the following command :

wimakcab.vbs "MSI Package.msi" data1 /C /U /E

This should modify the MSI file so it will contain an internal compressed cab, named data1.cab - check the size of the MSI, it should have increased significantly from the vendor's original.

Again, you could then use this new "base" MSI to create any transforms you need subsequently.


Regards,

spartacus
Posted by: spartacus 18 years ago
Black Belt
0
I normally convert the original MSI to an InstallShield (ISM) project which, when created, will then allow me to create a Release of the project, specifying internal compressed files.

This procedure usually works for me in InstallShield AdminStudio v6 :

1) Using the InstallShield Editor tool, click File .. Open ... and navigate to the original MSI file, make sure you change the Open as: option from Auto to Wizard

2) You should now see the Open MSI/MSM Wizard dialog box. Ensure the "Convert MSI/MSM to an InstallShield Project" is selected. Click Next at this dialog

3) At the next (File Locations) dialog, give the Project a suitable name and choose a folder where InstallShield can (temporarily) unpack any vendor supplied external cab files you are using.

4) Having created the ISM project file and with the InstallShield Editor still open, select the Installation Designer tab and scroll down to and click on the Releases option.

5) Click on the Build menu option at the top of the window and choose Release Wizard ..

6) Follow the Release Wizard by clicking Next, choose a meaningful name for the Product Configuration, or leave it at its default if you prefer.

7) Choose a meaningful name for the New Release Name, or leave it at its default if you prefer. Click Next.

8) At the next screen include any Release Flags you need - I usually leave this blank.

9) At the next screen choose any user interface languages you need to support - I default this to English (US) in almost all cases [because I am UK-based]

10) The next dialog is the first vital step - make sure you select a Media Type of Network Image to ensure the new release will use internal cabs.


11) The following dialog is the second vital step - make sure you select the "Compress All Files" option - click next when ready.
12) At the following dialog, Setup Launcher, you can elect to create a setup.exe for your package - I usually deselect this option as I normally wish to have just an MSI to work on without worrying about InstallScript support.

13) At the next screen, choose a folder to hold the release - i.e. where the "new" MSI with internal cab(s) will be stored. I usually leave other options in this screen at default.

14) At the final summary screen, make sure the "Build the Release" option is checked and click Finish.

Hopefully this should build an MSI for you with all the files internal and compressed. Any additional changes to the logic of the MSI &c should then (ideally) be made by creating transforms to this newly created MSI.

Regards,

spartacus
Posted by: DevGowda 18 years ago
Orange Belt
0
Hi,

Thanks a Lot spartacus, But Isn't there any approach which will enable us to incorporate external CAb Files and Folders into the MSI without the need to create the ISM.

Thanks,
Dev
Posted by: williamp 18 years ago
Orange Belt
0
Hello -

It might (or might not) be worth looking at the "Summary Information" table in direct editor, and the "Word Count" property in it in particular. This sets the global relationship of compressed versus uncompressed files, which can be over-ridden on a file-by-file basis by the attributes field in the File table.

You can read-up on it at: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/word_count_summary.asp

I don't know how well this will work for what you want to do.

Personally, I wouldn't monkey with it too much -- take the vendor package as it is, and apply the minimum transforms necessary to get the thing to work adequately with the minimum effort. Often, that is difficult enough! :-)

Regards,
William

ORIGINAL: DevGowda

Hi,

Thanks a Lot spartacus, But Isn't there any approach which will enable us to incorporate external CAb Files and Folders into the MSI without the need to create the ISM.

Thanks,
Dev


Posted by: williamp 18 years ago
Orange Belt
0
You could use the WiMakCab.vbs utility supplied with the Windows Installer SDK (itself part of the Microsoft Platform SDK for Windows Server 2003 SP1).

Hey spartacus, thanks for drawing my attention to that folder. There are some nice gems in there!

Regards,
William
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
This website uses cookies. By continuing to use this site and/or clicking the "Accept" button you are providing consent Quest Software and its affiliates do NOT sell the Personal Data you provide to us either when you register on our websites or when you do business with us. For more information about our Privacy Policy and our data protection efforts, please visit GDPR-HQ