I'm creating a MSI with 3 features. Admin, Runtime and Instant. During installation, based on the INSTALL_TYPE property, the relevent Feature is installed. (ie. INSTALL_TYPE=Administrator, etc)

What I'm wondering is, how can I change the feature state once this is installed via command line without doing a wrapper?

I am able to change the feature states by issing a REMOVE=Administrator and then a ADDLOCAL=Instant, but is there a way to remove the feature in the MSI? The only way I can figure out is by using install levels and this won't work as they are completely seperate installs, not cumulative.

I've created a condition, If Installed.. and then a If INSTALL_TYPE=Administrator .. to detect that it's already installed but a feature change is desired....but then what?! :)


Edit: After re-reading this, I thought I'd clarify:

1) Do initial install:
/i ".\test.msi" install_type=Administrator /qn

2) Change to runtime after it's already installed:
/i ".\test.msi" install_type=Runtime /qn

The second step would see it's already installed and know a feature change is desired, remove the Administrator feature and install the Runtime.
0 Comments   [ + ] Show Comments


Please log in to comment

Rating comments in this legacy AppDeploy message board thread won't reorder them,
so that the conversation will remain readable.


I don't think that could be done "internally" by the MSI, other than through a mess of Custom Actions but then, why would it need to? You already half-answered your question, in that you could use the combination of REMOVE and ADDLOCAL:

/i ".\test.msi" REMOVE=Administrator ADDLOCAL==Runtime /qn
Answered 04/02/2009 by: VBScab
Red Belt

Please log in to comment
ah hah! I forgot that feature properties have a order to them...thanks!!
Answered 04/02/2009 by: Zerg
Senior Yellow Belt

Please log in to comment
I forgot that feature properties have a order to themActually, they don't. You can enter properties in any order, the engine doesn't care.
Answered 04/03/2009 by: VBScab
Red Belt

Please log in to comment
Answer this question or Comment on this question for clarity