Hi guys,

I'm having a problem editing a .msi file trying to change the installation drive from C to D. For the whole application, the ROOTDRIVE property works for some installers, but not for all. I've also tried using additional properties when I use MSIEXEC, properties like: TARGETDIR, INSTALLDIR, PRIMARYVOLUME but I've got no luck. I've also tried using this method I've seen:


"Created a new property called MYDIR (or something unique) and entered desired drive letter for the value (i.e. D:\)

After the Cost Finalize entry in the User Interface sequence, insert a Set Directory custom action

Enter a unique Custom Action Name - doesn't matter what it is as long as it's unique

For the Directory field, clicked on the Browse button, and chose the folder you want the app to install to, and click OK. The Directory field will be populated with the property name of the folder (i.e.INSTALLDIR)

In the Directory Value field, entered the custom property you created in all caps/square brackets, followed by the folder path you want the application to install to: i.e. [MYDIR]Program Files\Windows Resource Kits\Tools. Click OK "

I've also used this method but I kept encountering an error regarding the CA I've placed in the Deferred sequence. I think that I've placed the CA in the wrong sequence within the Deferred Execution (placing it after the InstallInitialize sequence). Just added FYI, I've placed the CA I've created in the Execute Immediate and Execute Deferred, as I was installing in silent mode, using the /qn switch.

Got any suggestions aside from using custom actions? Or is it the only way to change the installation drive?

Here is the link to another post that I've made including the install.log file:

for some reference

Any help would be appreciated thanks guys!
0 Comments   [ - ] Hide 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.
Answer this question or Comment on this question for clarity


We often need to set packages to install on the E:\ for or Citrix servers and achieve it by hardcoding the INSTALLDIR value as a property e.g.

INSTALLDIR E:\Program Files\MyApp

It's normally that straight forward although sometimes more needs to be done for vendor MSI packages. Also, it causes a validation error but we live with it.

Setting the ROOTDRIVE value to E:\ doesn't have any effect for Program Files etc since it uses the environment shell variables and still ends up in C:\Program Files

Hope this helps, but I guess not since you say you've already tried setting INSTALLDIR !?

Answered 02/16/2010 by: MSIPackager
Third Degree Black Belt

Please log in to comment
Hi Rob,

I've tried setting the installdir, the problem is the application installs a part in C: and a part in D, I think that the MSI package has two installdir properties, I'm currently finding the other installdir property to change. Thanks for the reply.
Answered 02/16/2010 by: pagsi23
Senior Yellow Belt

Please log in to comment