/build/static/layout/Breadcrumb_cap_w.png

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

0 Comments   [ + ] Show comments

Answers (10)

Posted by: reds4eva 15 years ago
Second Degree Blue Belt
0
I dont think so.
You would have to use a wrapper with the command line for the msi and mst.
Posted by: jmcfadyen 15 years ago
5th Degree Black Belt
0
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.
Posted by: reds4eva 15 years ago
Second Degree Blue Belt
0
ORIGINAL: jmcfadyen
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.



Except, most likely the reason you have a transform is that it is a vendor MSI, and the first rule of Fight club is dont edit the vendor MSI.
Posted by: prashanth 15 years ago
Orange Belt
0
reds4eva is right...... Editing the vendor msi hamper the functionality of the application.
Posted by: AngelD 15 years ago
Red Belt
0
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.
Posted by: anonymous_9363 15 years ago
Red Belt
0
ORIGINAL: prashanth
reds4eva is right...... Editing the vendor msi hamper the functionality of the application.
Nonsense. 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.
Posted by: Johni 15 years ago
Senior Yellow Belt
0
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:
  • 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
Second Degree Blue Belt
0
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.
Posted by: captain_planet 15 years ago
Black Belt
0
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.
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