I created an MST for an MSI, It gives cab + mst .
My requirement is , embed that cab and mst into the msi.
How can i do this?
I followed the following steps. Its working fine.
How to Merge CAB file inside an MSI
1. Download the Windows Installer 4.5 SDK , you will get msi45SDK.msi .
2. Install this msi45SDK.msi , once you installed , you will find the msiDB.exe in the following path.
C:\Program Files\Windows Installer 4.5 SDK\TOOLS\msidb.exe
3. Copy this msiDb.exe from the above path.
4. Paste this msiDb.exe to C:\WINDOWS\system32 folder.
5.Open the command prompt give the following command for merge the cab file inside the msi
C:\>msidb.exe -d <path of msi> -t <path of mst> -a <path of cab file>
-d -> name of the database (msi name)
-a -> add the cab file
6. Open ORCA tool select the msi path, click on Tables -> Media Table-> It will display the cab table as Data1.cab
7. Edit the Cabinet column field as #Data1.cab
8. Save the settings.
9. The above steps will be helpful to merge the cab file inside msi]
For the record, you can perform the entire operation using ORCA.
As a separate note, you cannot import the CAB file into the transform, even if you add a CAB table to it. For some reason, the cab file tables are not merged between an MSI and a transform.
We have a package called OracleClient. We created .iss file for this Oracle client 10g application. Now i want to wrap this in empty msi. Could you please tell me the steps how can i proceed further? (If there is any other way to do this Oracle Client Please let me know.)
There is a large database of packaging solutions for common vendor applications on the Appdeploy website http://www.appdeploy.com/apps
I cannot recall if Oracle 10g uses MSI technology internally to perform its install, but certainly Installshield technology allows the creation of ISS files for both their legacy installers and also their MSI technology when compiled to EXE format.
To check if a vendor install uses MSI technology, open Task Manager and sort on the Process column. Then start the vendor install, and look for any MSIEXEC processes that are started in Task Manager. If one or more MSIEXEC processes are seen to appear, then you cannot wrap your install in an empty MSI. Instead, look in the temp folders when the vendor install has reached its first user dialog, and you should be able to copy the extracted MSI and any related CAB files from the temp folder. Then you can proceed to apply a transform as required. Depending on the version of Installshield used for packaging, you may also need to deploy the necessary version of the Installshield scripting engine ISScript.MSI
I do not know what situation you are packaging in, but it is important to understand that not all installs can be neatly packaged into an MSI, and if you have a boss or a client that insists on MSI for everything then it is your job to educate them that this is not always possible or adviseable.
Oracle will NOT support any client install that does not follow their installation guidelines, so I would strongly recommend you review the installation instructions if you have not done so already. These days, I would also expect major vendors to provide additional instructions on how to deploy using the common distribution systems such as SMS or SCCM.
How did you do that? OC uses the Oracle Universal Installer which is a Java-authored app.
I have never seen a single Oracle product which uses InstallShield so an ISS file is pretty useless.
Why do you want to wrap the package into an MSI? Are you using Group Policy for deployment? Or is it - as I suspect - that your client wants their packages in MSI form?
Lastly, it's very bad form on ANY forum to hijack a thread, especially when the thread in question has absolutely no connection whatsoever with your problem.
The hijacked thread was started by the same poster just on a different topic. For the record, each new topic should be started as a new thread, to avoid confusion, regardless of any previous posting history.
So (on the original question), if you cannot embed the cab in the mst do you have to modify the actual msi and if so, is there any workaround for embedded Installshield msi's that are only extracted (to %temp%) at runtime - assuming the installshield msi cannot be run directly with ISSETUPDRIVEN etc. as other work is done in the setup.exe
I would never futz with a vendor MSI in that way. There is no scenario I can think of that might require it, other than client dogma.
If the EXE is doing additional work external to the MSI, the changes it makes can easily be incorporated into the transform.
It is hard to generalise on embedded Installshield MSIs as the way they are "embedded" can make a big difference to the way that you proceed. For example, the Autocad install includes a number of MSI and EXE runtimes that are executed from the InstallUI sequence, so for a silent install, each of those MSI and EXE components needs to be separated out and deployed silently in sequence, either through your deployment system, or using a control "wrapper" written in Wisescript or your preferred scripting tool, so that you just run a single EXE with the appropriate switch and leave the wrapper code to install, repair and uninstall all the components depending on the switch. Better still, if you happen to work at an enlightened company, you will have given the desktop build designers a list of all the common runtimes used by applications to put in their builds, so you never have to worry about packaging them for deployment.
Thanks VBScab - in my case I went with your previous post here