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

0 Comments   [ + ] Show Comments

Comments

Please log in to comment

Community Chosen Answer

2

Steps to be taken ( when using InstallShield)

  1. Open Blank ISM and add all the custom actions and your specific settings
  2. Save as a template.ism
  3. Build MSI
  4. Installshield - Tools - Create / Apply Transforms
  5. Choose "create transform based on the diff. between 2 msi's"
  6. Choose Base ( empty MSI) and Target Package ( your template.msi)
  7. choose "Do not perform validation prior..."
  8. Choose "suppress the following..."
  9. Select all the error conditions to make your MST generic!
  10. Choose file location and name of MST
  11. Next - Finish 
  12. You have your GENERIC mst!
Answered 04/17/2013 by: jaybee96
Red Belt

  • 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?
Please log in to comment

Answers

1

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/

Answered 04/17/2013 by: piyushnasa
Red Belt

  • you forgot to make the MST generic by switching off the error conditions / validation.
Please log in to comment
1

>Is there a way to create an MST based on a MST template
You can apply more than one transform during an installation so why not keep your "template" as it is and just specify it and any others you need at deployment time?

Answered 04/17/2013 by: VBScab
Red Belt

Please log in to comment
Answer this question or Comment on this question for clarity