/build/static/layout/Breadcrumb_cap_w.png

Do MST's have a priority?

Hello guys,

Well basically that's my question. If I have a package that for some reason has 3 MST files, is there an execution order or some sort of priority that's attributed the MST's? I'm looking for some sort of official position on the matter, so any help you may supply will be greatly appreciated.

I'm going to keep looking around Google in the mean time!

Thanks!

Stephane

0 Comments   [ + ] Show comments

Answers (19)

Posted by: MSIPackager 15 years ago
3rd Degree Black Belt
0
Yes they are applied on top of each other in the order of the command line. So in this example:

msiexec /i appname.msi transforms=settings1.mst;settings2.mst

Any matching launch condition set in settings1.mst would be overridden by those in setting2.msi

If you use InstEd you can layer your transforms up and see the final result.

Cheers,
Rob.
Posted by: Fau 15 years ago
Senior Purple Belt
0
Thank you sir! That answers that!
Posted by: Fau 15 years ago
Senior Purple Belt
0
Hello guys,

I have to bump this issue to the top, because we're not sure if this is normal.

Just for the sake of the example, let's say we have a MSI with Support Information URL "A" in Add Remove Program.
We build a MST on that MSI, in which we populate Support Information URL "A" in Add Remove Program, based on the MSI we have, which is normal.
Finally, our generic MST has a Support Information URL "B" in Add Remove Program.

So if I type out:

msiexec /i "blabla\MSI.msi" transforms="MST.mst, Generic.mst" /qb

The information in ARP for Support information is "B".

Now, I uninstall the product.
Reinstall using:

msiexec /i "blabla\MSI.msi" transforms="Generic.mst" /qb

Support Information is STILL "A", even tough my generic MST states "B". Is this normal? It's as if the MSI has priority over my transform file.

Any ideas?
Posted by: anonymous_9363 15 years ago
Red Belt
0
Stephane, as ever, run your install with a verbose log. You will see whether the properties are being changed or not.
Posted by: Fau 15 years ago
Senior Purple Belt
0
Hello Ian,

Doesn't seem to be changed, all I see is the following:

Property(s); ARPURLINFOABOUT = http://www.barcap.com/Futures

Instead of the custom property I have in my generic MST. And for some odd reason, there's no trace of my generic MST in the log file which I find odd... I'll keep looking into it.
Posted by: anonymous_9363 15 years ago
Red Belt
0
?!? If there's no mention of the transforms in the log file, they weren't applied.

Post the command line you entered.
Posted by: nheim 15 years ago
10th Degree Black Belt
0
Hi Stephane,
your command line isn't working like this.
Try: msiexec /i "blabla\MSI.msi" TRANSFORMS="MST.mst;Generic.mst" /qb

Don't know exactly, if the upper case is necessary, but the semicolon definitely is.

Regards, Nick
Posted by: anonymous_9363 15 years ago
Red Belt
0
ORIGINAL: nheim
Don't know exactly, if the upper case is necessary
[red faced]How did we miss THAT howler? TRANSFORMS is a specially-handled Public property and as such must be in upper-case or else it will be ignored.
Posted by: Fau 15 years ago
Senior Purple Belt
0
Hey guys,

Since I wasn't sure if I had typed it in CAPS or not, I went and retried it. Still, that doesn't work.

What I check is the following property:
ARPHELPTELEPHONE: +44 (0) 20 7773 3460 which MY custom MST changes to: (514) ***-**** / (866) ***-****

So... I searched my log file for that property, and the only mention of the property I see is:
Property(S): ARPHELPTELEPHONE = +44 (0) 20 7773 3460

I was mistaken last friday as the MST is in my log file, I had missed it.

So, I'm still stumped in the issue. If need me, I can copy the whole Log file, maybe I missed out on something.
Posted by: anonymous_9363 15 years ago
Red Belt
0
Stephane,

http://msdn.microsoft.com/en-us/library/aa372085(VS.85).aspx

The second sentence says:
The installer applies the transforms in the same order as they are listed in the property.

In which transform are the properties changed and, if in the first, does the second also contain the same property, but with the original value?
Posted by: Fau 15 years ago
Senior Purple Belt
0
Hello Ian,

Well in this test case, the property in question, I only launched my MSI with my generic MST. So, my command line is:

msiexec /i "F:\DEV\Tresorerie\Futures_Trading_2.5\EN\SMS\Futures_Trading_2.5.msi" TRANSFORMS=F:\DEV\Tresorerie\Futures_Trading_2.5\EN\SMS\BNC.Mst /qb /L*v c:\log1.txt

So, my property ARPHELPTELEPHONE is originally in my MSI set to +44 (0) 20 7773 3460. I would of expected it to be changed at run time in my BNC.MST file, since in there, the same property reads (514) ***-**** / (866) ***-****.

So, to make a long answer short, both the MSI and the MST contain the same property, with different values.
Posted by: anonymous_9363 15 years ago
Red Belt
0
...and your log DEFINITELY shows the transform being applied?
Posted by: Fau 15 years ago
Senior Purple Belt
0
Aye...

Here's a paste of each time "BNC.MST" is found in my log file:
MSI (s) (E8:44) [08:15:37:949]: Looking for file transform: F:\DEV\Tresorerie\Futures_Trading_2.5\EN\SMS\BNC.Mst
[...]
MSI (s) (E8:44) [08:15:37:981]: Original transform ==> F:\DEV\Tresorerie\Futures_Trading_2.5\EN\SMS\BNC.Mst
[...]
MSI (s) (E8:44) [08:15:37:981]: SOFTWARE RESTRICTION POLICY: Verifying transform --> 'F:\DEV\Tresorerie\Futures_Trading_2.5\EN\SMS\BNC.Mst' against software restriction policy
[...]
MSI (s) (E8:44) [08:15:37:981]: SOFTWARE RESTRICTION POLICY: F:\DEV\Tresorerie\Futures_Trading_2.5\EN\SMS\BNC.Mst is not digitally signed
[...]
MSI (s) (E8:44) [08:15:37:996]: SOFTWARE RESTRICTION POLICY: F:\DEV\Tresorerie\Futures_Trading_2.5\EN\SMS\BNC.Mst is permitted to run at the 'unrestricted' authorization level.
[...]
MSI (s) (E8:44) [08:15:38:012]: Command Line: TRANSFORMS=F:\DEV\Tresorerie\Futures_Trading_2.5\EN\SMS\BNC.Mst CURRENTDIRECTORY=G:\ CLIENTUILEVEL=2 CLIENTPROCESSID=1556
[...]
MSI (s) (E8:44) [08:15:38:012]: PROPERTY CHANGE: Adding TRANSFORMS property. Its value is 'F:\DEV\Tresorerie\Futures_Trading_2.5\EN\SMS\BNC.Mst'.
[...]
MSI (s) (E8:44) [08:15:38:027]: TRANSFORMS property is now: F:\DEV\Tresorerie\Futures_Trading_2.5\EN\SMS\BNC.Mst
[...]
MSI (s) (E8:44) [08:15:55:981]: Processing cached transform: C:\Documents and Settings\fauberst\Application Data\Microsoft\Installer\{BDE67C8A-6630-11D5-B3D8-00508BF1F452}\BNC.Mst
[...]
MSI (s) (E8:44) [08:15:55:996]: Registering cached transform: *26*Microsoft\Installer\{BDE67C8A-6630-11D5-B3D8-00508BF1F452}\BNC.Mst
[...]
Property(S): TRANSFORMS = F:\DEV\Tresorerie\Futures_Trading_2.5\EN\SMS\BNC.Mst
*************************************************************************************

Anything here that rings a bell that I may have missed?
Posted by: anonymous_9363 15 years ago
Red Belt
0
Yup, that's pretty clear! :) OK, in that log you should see:

PROPERTY CHANGE: Modifying ARPHELPTELEPHONE property. Its current value is '+44 (0) 20 7773 3460'. Its new value: '(514) ***-**** / (866) ***-**** '.

One thing that struck me...the '/' in the changed property value. What happens if you change that to a proper text value, e.g. "or"? I'm thinking that *maybe* the engine is treating that slash character as an escape character or something and, seeing it in the value, causes the change to be ignored.
Posted by: Fau 15 years ago
Senior Purple Belt
0
Ok,

Still no go :-( I don't see the mentionned line in my log file. The ARPHELPTELEPHONE appears only once in my log file, and it's exactly like I mentioned above: Property(S): ARPHELPTELEPHONE = +44 (0) 20 7773 3460. I tried removing the slashes and putting nothing in it's place. Still no go.

It's almost as if Windows Installer takes some properties from the MSI and others from the MST. For example, contact information is written properly, but that's about it.

Now, I'm willing to try and modify my universal MST via another method if need be. Should I create an empty MSI file and compile it on that?
Posted by: anonymous_9363 15 years ago
Red Belt
0
For some reason, the MST isn't transforming that property. If you're absolutely certain that the MST does indeed have that property and it has a new value, I would delete it and re-create it. It sounds nonsensical but I am no longer surprised that fixes which ought not to make sense actually do fix issues. It could be, for example, that a space has crept into the property name, making it either ' ARPHELPTELEPHONE' or 'ARPHELPTELEPHONE '.

BTW, if you load up the MSI into Orca or InstEdit then apply your transform, the tables which have changes will be highlighted and the changed values, too. That will save you some time. The two major MSI-authoring tools also have similar functionality but Orac/InstEdit will be quicker.
Posted by: Fau 15 years ago
Senior Purple Belt
0
Is there some way I could force a creation of some properties? Or maybe some sort of FORCE repair?Like a check if property exists, and RECREATE it even if it does?...

Desperate times calls for desperate measures I guess.
Posted by: MSIPackager 15 years ago
3rd Degree Black Belt
0
TRANSFORMS is a specially-handled Public property and as such must be in upper-case or else it will be ignored.

Ian, this isn't the case - at least not in later versions on windows installer from v3 onwards

Try it with lowercase a "transforms=" - they will still be applied...
Posted by: Thegunner 15 years ago
Second Degree Green Belt
0
ORIGINAL: MSIPackager

TRANSFORMS is a specially-handled Public property and as such must be in upper-case or else it will be ignored.

Ian, this isn't the case - at least not in later versions on windows installer from v3 onwards

Try it with lowercase a "transforms=" - they will still be applied...



I did not know that, I have always used it in uppercase. Ta for the update!
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