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.
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)
Please log in to answer
Posted by:
xxMBxx
15 years ago
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
15 years ago
Posted by:
jcarri06
15 years ago
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
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
15 years ago
Posted by:
anonymous_9363
15 years ago
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
15 years ago
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.
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
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.
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
I've never tried this, but I wonder if specifying a new transform on the command line would work? Something like:
Original command line:
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
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
Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.
so that the conversation will remain readable.