/build/static/layout/Breadcrumb_cap_w.png

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


0 Comments   [ + ] Show comments

Answers (3)

Posted by: jaybee96 11 years ago
Red Belt
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!

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
Posted by: piyushnasa 11 years ago
Red Belt
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/


Comments:
  • you forgot to make the MST generic by switching off the error conditions / validation. - jaybee96 11 years ago
Posted by: anonymous_9363 11 years ago
Red Belt
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?

Don't be a Stranger!

Sign up today to participate, stay informed, earn points and establish a reputation for yourself!

Sign up! or login

Share

 
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