/build/static/layout/Breadcrumb_cap_w.png

Can't apply transform with msi reinstall

I am unable to use an updated transform when I reinstall a package. Here is the command I am using but it is not picking up the changes made to the transform.

msiexec /i "c:\test\testwin32.msi" TRANSFORMS="c:\test\testwin32.mst" REINSTALL=ALL REINSTALLMODE=vomus /q /forcerestart

Do I have to uninstall and then just do a new install.

My packages are being installed via the DOS command line.

0 Comments   [ + ] Show comments

Answers (10)

Posted by: xxMBxx 14 years ago
Orange Belt
1
If you installed an msi with a transform and then try to reinstall that MSI with an updated transform, the original cached transform will be used during the reinstall...thus you're new transform won't get applied.If you installed an msi with a transform and then try to reinstall that MSI with an updated transform, the original cached transform will be used during the reinstall...thus you're new transform won't get applied.

Why REINSTALLMODE=vams doesnot recache mst? Is there some MSI solution for this scenario?
Posted by: anonymous_9363 14 years ago
Red Belt
0
Take a verbose log of the installation. That should point you in the right direction.
Posted by: jcarri06 14 years ago
Senior Purple Belt
0
If you installed an msi with a transform and then try to reinstall that MSI with an updated transform, the original cached transform will be used during the reinstall...thus you're new transform won't get applied. Your options are:

1. Remove first, then reinstall new.
or
2. Find the cached MST on the machine (usually under c:\windows\installer\<productcode>\) override with your new one, and perform reinstall.

G'luck
-J
Posted by: anonymous_9363 14 years ago
Red Belt
0
Good call, J. I totally missed that we're dealing with a transform.
Posted by: anonymous_9363 14 years ago
Red Belt
0
Why REINSTALLMODE=vams doesnot recache mst?I think your question would best be dealt with by the WI team on MSDN but, thinking around the subject, maybe the rationale is to do with tracking which transform was applied. Sure, the registry records that but it doesn't record a history. It's entirely feasible to apply a transform then, at a later stage, apply another.

Is there some MSI solution for this scenario? No.
Posted by: andys0123 14 years ago
Orange Senior Belt
0
In answer to the Transform issue, HKLM\SOFTWARE\Classes\Installer\Products\ holds information on the installed products & one of the values is the Transform file used for the installation. This can be amended to uninstall/repair using a different Transform file:

reg add HKLM\SOFTWARE\Classes\Installer\Products\<CompressedProductCode for App> /v Transforms /t REG_EXPAND_SZ /d "<path>\newtransform.mst" /f

(The /f will force it to overwrite any existing Transform).

It can also be used to add a Transform file to be used when uninstalling an application that breaks installer using its standard uninstall - for example, if an application includes an entry for HKLM\SYSTEM\CurrentControlSet\Control\ServiceCurrent, when it is uninstalled it deletes this value & stops installer from starting up again until after a reboot. Creating a Transform for the original MSI that deletes the HKLM\SYSTEM\CurrentControlSet\Control\ServiceCurrent entry from the package and then adding this transform file to the HKLM\SOFTWARE\Classes\Installer\Products\<CompressedProductCode>\Transforms entry means that uninstall will not remove the ServiceCurrent value and therefore Installer will restart OK.
Posted by: Nirmal1208 14 years ago
Senior Yellow Belt
0
I am also looking for a option to update the settings present in the MST ( MSI and MST installed) apart from removing the Old MST from Cache + reinstall and changing the transforms name in HKCR\Installer\Products .These two are not acceptable to our quality and call them as workaround not solutions.

Are there any solution ? I thought about avoiding to create MST and editing the MSI directly but worried about the implications ( I know it not advisable to edit the MSI directly for unknown best practice reasons:)

I spent too much time researching ., would appreciate your suggestions.
Posted by: anonymous_9363 14 years ago
Red Belt
0
I've never tried this, but I wonder if specifying a new transform on the command line would work? Something like:
Original command line:MSIEXEC /i whatever.msi TRANSFORMS="XFORM.MST" [etc] New command line:MSIEXEC /i whatever.msi TRANSFORMS="XFORM.MST;NEWXFORM.MST" REINSTALLMODE=vomus REINSTALL="ALL" [etc]
Posted by: xxMBxx 14 years ago
Orange Belt
0
Suggestion from "andys0123" works. Have been used on installed MSI without MST, so without uninstalling the MSI it was just reinstalled with inserted mst inside registry. The idea to chain MST looks good, waiting for oportunity to test it on real production environment.
Posted by: Nirmal1208 14 years ago
Senior Yellow Belt
0
I have tested the option suggessted by VBScab , the new MST gets ingored.
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
 
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