I'm currently in process of developing a solution to make the .msi file cache completely (instead of stripped version without the media table in %WINDIR%\Installer). The following criteria is set:

1) It must be compatible with any vendor .msi installations through the use of .mst.
2) It must take into account the possibility that uncompressed files will be present.

One of the first solutions I'm thinking about is the following (taken from flexera forums):

1) Resolve the location of your original database and files
2) Pick an arbitrary place on the harddrive
2a) InstallShield chooses %Windir%\DownloadedInstallations\GUID
2b) Microsoft chooses an ntfs partition with 1.5gb free ( usually c:\msocache )

3) Copy your source files to the storage folder

If the above actions were done in a custom bootstrapper then run your MSI from the storage folder and your set.

Otherwise if you ran your MSI from the installation media and used a custom action to perform the above actions then call the MsiSourceListAddSource() function or the AddSource method of the Installer object to update the sourcelist for the installed product.

I would really appreciate if someone mentions another solution, preferably a built-in functionality of the .msi engine itself, I would really prefer that instead of developing custom action (or merge module) to handle the copy process and population of SOURCELIST property.

Your suggestions will be very appreciated. Thank you.
0 Comments   [ + ] Show Comments


Please log in to comment

There are no answers at this time
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.


Answer this question or Comment on this question for clarity