Is it possible to register environment variables in Setup Wizard project?
I am creating a Visual Studio 2008 Setup Wizard for my program http://support.microsoft.com/kb/307353 I see that it is possible to add registry entries, etc.. Is there a possibility to register windows environment variable without writing a custom action? And if I must write a custom action, what is the least painful way to do so?
Using Visual Studio 2008, you can easily do it by setting the appropriate variable in the Windows registry:
- In the Solution Explorer, right-click on your project (not solution), and select View->Registry
- Create the registry key(folder):
- For a User variable: Right-click on HKEY_CURRENT_USER, select "New Key", and name it "Environment".
- For a System variable: Right-Click on HKEY_LOCAL_MACHINE, select "New Key", and name it "SYSTEM". Continue doing this to create the path "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" .
- Right-click on the Environment key(folder), select New->String, and give it the name you want.
- With the string selected, find the Properties window (Alt+Enter will bring it up)
- In the Properties window, fill in the Value you want.
If you want the Value to reference the installation directory, you can do it like this using property variables: [TARGETDIR]SomeFile.ext (see http://msdn.microsoft.com/en-us/library/aa370905%28v=vs.85%29.aspx for more property variables)
Windows Installer does support environment variables through Environment table, but Visual Studio setup projects do not allow you to use it.
A solution is to use a different setup authoring tool which supports environment variables: http://en.wikipedia.org/wiki/List_of_installation_software
Another solution is to manually add it in Environment table by editing the MSI with Orca.
There's also the custom action approach you mentioned.