cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

tuner/windows installer error

CChong
By Level 11 Flexeran
Level 11 Flexeran
For two similar application suites, I attempt to create a response MST to their pre existing MSI file. When I've finished creating the response and tuner attempts to open, I get the following error message:

Windows Installer Error 2252 C:\Docume~1\username\LOCALS~1Temp\wac73b.tmp, CustomAction MsiDatabaseApplyTransform(C:\Docume~1\username\LOCALS~1Temp\hp100ilc.mst)


Any ideas? The MST is still created but I can only open it in Developer, anytime I attempt to with Tuner, it crashes with the above error message.
(2) Replies
CChong
By Level 11 Flexeran
Level 11 Flexeran
First of all I will acknowledge that this is a bug in Tuner and we have fixed this bug. The fix will be available in our next release.

Tuner creates the response transform in such a way that it sets the error suppression for transform to be 0. When error suppression is set to 0 and you try to apply the transform against an MSI package, the applying process will fail if any error is found.
This is what is happening in your case.

The fix for this problem will be not to set error suppression to 0 but create the transform in such a way so that it can handle all the errors.

Following are the error conditions that can be suppressed for transform.

Add existing row.
Delete non-existing row.
Add existing table.
Delete non-existing table.
Modify existing row.
Change codepage

So the transform should be created with all these flags set so that when applying if any of the above error conditions occur the applying process will not fail.

For newly created transforms in Tuner you can change this from Project->Transform Summary Information menu item.

Now here is the work around for you.

Transform is basically a diff between two MSI packages. You open a MSI package in Tuner, Tuner then creates a copy of the MSI package and you make all your changes to the Copied MSI and then when you click on the save button, Tuner generates the diff between the Original MSI and Copied MSI and generate the transform.

MSI SDK has a tool called MsiTran.exe. You can use this tool to create a transform with the error condition suppressed. You can find more information about MSITran.exe from
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/msi/setup/msitran_exe.asp

What you need to do is to create a copy of your original database and then apply the response transform created by Tuner to the copied database. You can use the following command line.

msitran.exe -a "Name of the Response Transform" "Name of the Copied MSI" abcde

Now your Copied MSI will have the content of your transform. Next thing you need to do is generate a new transform with the error conditions suppressed. You can use the following command line to do this.

msitran.exe -g "Name Original MSI" "Name of the Copied MSI" "Name of the new Transform" abcde

This will generate a brand new transform for you with the same contents as response transform plus with the error conditions suppressed.

Now you can open this transform along with your MSI package in Tuner.
CChong
By Level 11 Flexeran
Level 11 Flexeran
Worked like a charm. Thanks!