MST template
Hi,
We want to standardize the way our MSI are build. I have created an Installshield template that contains many custom actions build in VBS. This template is applied on MSI that we capture so that any package captured have the same set of custom actions that we can call or not.
In some cases, we get MSI directly from vendors. In such cases, we are not capturing the installation but we rather apply a transform to these MSI.
Is there a way to create an MST based on a MST template that would contains all our Custom Actions?
Thanks
Answers (3)
Steps to be taken ( when using InstallShield)
- Open Blank ISM and add all the custom actions and your specific settings
- Save as a template.ism
- Build MSI
- Installshield - Tools - Create / Apply Transforms
- Choose "create transform based on the diff. between 2 msi's"
- Choose Base ( empty MSI) and Target Package ( your template.msi)
- choose "Do not perform validation prior..."
- Choose "suppress the following..."
- Select all the error conditions to make your MST generic!
- Choose file location and name of MST
- Next - Finish
- You have your GENERIC mst!
Comments:
-
I did just that. However, when I try to install msi using my transform, the product name of my MST takes over the name of my MSI. Also, all the custom actions I have inserted are not running returning the following errors:
Début de l'action 10:16:48 : BEF_1_CheckRunningProcess.
MSI (s) (A8:A0) [10:16:48:681]: Doing action: BEF_3_KillProcess
Fin de l'action 10:16:48 : BEF_1_CheckRunningProcess. Valeur renvoyée : 1.
MSI (s) (A8:A0) [10:16:48:697]: Transforming table CustomAction.
MSI (s) (A8:A0) [10:16:48:697]: Note: 1: 2235 2: 3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'BEF_3_KillProcess'
MSI (s) (A8:A0) [10:16:48:697]: Transforming table CustomAction.
Début de l'action 10:16:48 : BEF_3_KillProcess.
MSI (s) (A8:A0) [10:16:48:728]: Doing action: BEF_4_DeleteRegKeys_HKLM
Fin de l'action 10:16:48 : BEF_3_KillProcess. Valeur renvoyée : 1.
MSI (s) (A8:A0) [10:16:48:744]: Transforming table CustomAction.
MSI (s) (A8:A0) [10:16:48:744]: Note: 1: 2235 2: 3: ExtendedType 4: SELECT `Action`,`Type`,`Source`,`Target`, NULL, `ExtendedType` FROM `CustomAction` WHERE `Action` = 'BEF_4_DeleteRegKeys_HKLM'
MSI (s) (A8:A0) [10:16:48:744]: Transforming table CustomAction.
MSI (s) (A8:10) [10:16:48:744]: Entering MsiProvideComponentFromDescriptor. Descriptor: +5bcOEjhT?J`{_p}G'74Program_Files>M5KDYSUnf(HA*L[xeX)y, PathBuf: EDF338, pcchPathBuf: EDF334, pcchArgsOffset: EDF28C
MSI (s) (A8:10) [10:16:48:744]: MsiProvideComponentFromDescriptor called for component {997FA962-E067-11D1-9396-00A0C90F27F9}: returning harcoded oleaut32.dll value
MSI (s) (A8:10) [10:16:48:744]: MsiProvideComponentFromDescriptor is returning: 0
Any idea? - jml2011inc@gmail.com 11 years ago
I think you can create one MST template with all your changes on a blank MSI. Do not add anything for a particular MSI and save the MST. You can use this MST as a template then to apply on any other MSI.
Since MST is only the added difference it will add this difference in the MSI you apply it to.
~Piyush Nasa
~My Blog: http://msiworld.blogspot.com/
Comments:
-
you forgot to make the MST generic by switching off the error conditions / validation. - jaybee96 11 years ago