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
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)
Please log in to answer
Posted by:
MSIPackager
16 years ago
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.
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
16 years ago
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?
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
16 years ago
Posted by:
Fau
16 years ago
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.
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
16 years ago
Posted by:
nheim
16 years ago
Posted by:
anonymous_9363
16 years ago
Posted by:
Fau
16 years ago
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.
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
16 years ago
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?
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
16 years ago
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.
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
16 years ago
Posted by:
Fau
16 years ago
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?
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
16 years ago
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.
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
16 years ago
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?
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
16 years ago
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.
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
16 years ago
Posted by:
MSIPackager
16 years ago
Posted by:
Thegunner
16 years ago
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.
so that the conversation will remain readable.