TRANFORMS Only
Hi All!
This is my first post on AppDeploy and I am fairly new to MSI development.
The question I have is that is there a way to make the MSI so that it can only be installed using TRANSFORMS switch?
In other words, if MSI is double clicked then it should generate an error but when run using msiexec /i some.msi TRANSFORM=someTransform.mst then it should install
thanks
This is my first post on AppDeploy and I am fairly new to MSI development.
The question I have is that is there a way to make the MSI so that it can only be installed using TRANSFORMS switch?
In other words, if MSI is double clicked then it should generate an error but when run using msiexec /i some.msi TRANSFORM=someTransform.mst then it should install
thanks
0 Comments
[ + ] Show comments
Answers (10)
Please log in to answer
Posted by:
reds4eva
15 years ago
Posted by:
jmcfadyen
15 years ago
you could do a couple of things..
have a look at secure custom transforms in the sdk. It allows you to embed the Transform within the MSI. Then you could potentially hard code the transform property.
you could try a launch condition of TRANSFORMS
a CA which enums the value of TRANSFORMS and runs a type 19 CA if not found.
Im sure its possible i have never tried it tho.
have a look at secure custom transforms in the sdk. It allows you to embed the Transform within the MSI. Then you could potentially hard code the transform property.
you could try a launch condition of TRANSFORMS
a CA which enums the value of TRANSFORMS and runs a type 19 CA if not found.
Im sure its possible i have never tried it tho.
Posted by:
reds4eva
15 years ago
Posted by:
prashanth
15 years ago
Posted by:
AngelD
15 years ago
We all know about the rules, how to bend them and break them [;)]
However I don't see anywhere that Johni refer to a vendor MSI. This could be a general question too as the OP is "fairly new to MSI development". This could also be an in-house MSI with transforms for different subsidiary, sites or simething else.
Embedding a transform into the _Storage table shouldn't break any future updates from the vendor, nor would a correct conditioned CA.
Johni,
Don't forgett the "S" at the end (TRANSFORMS) even for a single transform.
However I don't see anywhere that Johni refer to a vendor MSI. This could be a general question too as the OP is "fairly new to MSI development". This could also be an in-house MSI with transforms for different subsidiary, sites or simething else.
Embedding a transform into the _Storage table shouldn't break any future updates from the vendor, nor would a correct conditioned CA.
Johni,
Don't forgett the "S" at the end (TRANSFORMS) even for a single transform.
Posted by:
anonymous_9363
15 years ago
ORIGINAL: prashanthNonsense. It *might* but it's not an absolute truth. If you know what you're doing, there's no problem. The general consensus, though, is that editing vendor MSIs is A Bad Thing and to always use transforms.
reds4eva is right...... Editing the vendor msi hamper the functionality of the application.
Posted by:
Johni
15 years ago
Thanks guys for providing such valuable info, I really appreciate it.
Actually it is a vendor MSI (and I should have mentioned it in my initial thread...apologize for that).
So what I got from this thread is:
Thanks again
Actually it is a vendor MSI (and I should have mentioned it in my initial thread...apologize for that).
So what I got from this thread is:
- If it is a vendor MSI then don't modify it
- If it is not then there is a way (as mentioned by jmcfadyen)
Thanks again
Posted by:
reds4eva
15 years ago
I never said you cant do it, just you shouldnt if at all possible. Occasionaly you have no choice but to edit the msi, and if your going to do that, then listen to Mr McFadyen's, Angel and vbscabs advice.
But, in this case, I wouldnt do it just for the sake of embedding an MST. There are other ways to stop people running MSI's.
But, in this case, I wouldnt do it just for the sake of embedding an MST. There are other ways to stop people running MSI's.
Posted by:
reds4eva
15 years ago
Posted by:
captain_planet
15 years ago
Just stumbled across this post. You could put an entry in your main MSI, in the LaunchCondition table like this:
Condition
TRANSFORMPRESENT="true"
Description
Sorry, you need to use a transform.
and then in your transform, add a property called 'TRANSFORMPRESENT' and give it a value of 'true' (Use whatever property name you want, it doesn't have to be TRANSFORMPRESENT).
It doesn't specifically provide the exact logic that you required, but could be a way of 'fudging' the same sort of behaviour you're after. It works because the LaunchCondition evaluation cannot find the property until the transform is applied.
Condition
TRANSFORMPRESENT="true"
Description
Sorry, you need to use a transform.
and then in your transform, add a property called 'TRANSFORMPRESENT' and give it a value of 'true' (Use whatever property name you want, it doesn't have to be TRANSFORMPRESENT).
It doesn't specifically provide the exact logic that you required, but could be a way of 'fudging' the same sort of behaviour you're after. It works because the LaunchCondition evaluation cannot find the property until the transform is applied.
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.