This project has moved and is read-only. For the latest updates, please go here.

Install Target Directory

Topics: Bindings File, Settings Management and SSO
Jul 9, 2014 at 4:20 PM
Just wanted to confirm that setting the DefaultInstallDir is the only way to change the target installation directory?

Secondly is it possible to get access to the DefaultInstallDir value in the Bindings file (xml preprocessor)? We have some resources that are accessed by pipeline components and would rather not burn in the installation path as installing directly from Visual Studio using the BTDF will cause run-time errors.

Jul 9, 2014 at 6:57 PM
Correct. DefaultInstallDir really just generates a .bat file next to the MSI that passes a command-line param to msiexec.exe. In (future) BTDF v6.0 the default path is merged into the generated MSI and the .bat file is gone.

As for your second question, you should reference SSOSettingsFileReader.dll from your pipeline component, and use it to read the ProjectPath setting from SSO. ProjectPath is always present after a deployment and contains the source path of the binaries, as long as you have IncludeSSO set to True. See here for more information. No need to do preprocessing.

Jul 9, 2014 at 8:42 PM
Thanks Tom

Was hoping some of the MSBuild variables were available in addition to our environment settings during the binding preprocessing.

Jul 10, 2014 at 6:41 AM
Any environment variables are accessible during pre-processing using the format ${_env_ENVVARNAME}. MSBuild properties are not. Other property name/value pairs, including any MSBuild properties, can be sent to XmlPreprocess.exe using the /d command line parameter, but to use it you'd have to override the default PreprocessBindings target, which I don't recommend. The install path is also written to the registry by an MSI deployment, but not by a Visual Studio deployment.

Are you trying to avoid referencing SSOSettingsFileReader?

Jul 10, 2014 at 4:11 PM
No not avoiding SSOSettingsFileReader just a significant change to the pipeline components as they're used by different applications.