63002

What is the meaning of WiX configurable directory?

Question:

I have a test installer that has 2 features A and B. A has 2 files a1 and a2, B has also 2 files b1 and b2(Each file belongs to individual component).

Feature A = {a1, a2} Feature B = {b1, b2}

And the installation location for each file is as follows(somewhat mixed):

[ProgramFilesFolder] MyApp\ Dir1\ a1 b1 Dir2\ a2 b2

I set feature A's <em>configurable directory</em> to Dir1 and feature B's to Dir2.

When I launch the installer feature tree dialog says feature A's install location is [ProgramFilesFolder]\MyApp\Dir1 and feature B's install location is [ProgramFilesFolder]\MyApp\Dir2, like meaning a1, a2(feature A) are installed into Dir1 and b1, b2(featuer B) into Dir2.

But actual installation result is that a1, b1 are installed into Dir1 and a2, b2 are installed into Dir2. Of course, this is very normal behavior compared to my source code, but I don't get what the configurable diretory means in this situation.

Answer1:

This is for the feature selection tree and browse button on a custom setup dialog. You can associate a directory to the feature so that the user can select which directory the feature goes to.

The reality is most applications have all features (if they have more then one in the first place) all use the same configurable directory. ( Say INSTALLLOCATION for WiX, TARGETDIR for VDPROJ or INSTALLDIR for InstallShield ) Even then though components can actually have whatever directory they need for their destination so changing the destination for a feature doesn't actually mean every component in that feature will go to that directory. Some might need to go to places like SystemFolder.

In the more advanced scenarios you might have features broken out into say Windows App, Windows Service, WebUI and you might want to select where each of those go on the machine.

Make sense?

Answer2:

For summary:

If I understood correctly, ConfigurableDirectory of a feature only has effect on its components that are installed <em>under</em> that ConfigurableDirectory. That is, a user can only change the target directory of components (of a feature) that are under ConfigurableDirectory.

Recommend

  • How to run a Scrapy scraper multiple times, simultaneously, on different input websites and write to
  • How can I access the repository from the entity in Spring Boot?
  • Why does vim incsearch pause when cancelling a search with the key?
  • Docker in Google App Engine Flexible health check has wrong URL
  • Web developer moving to Winforms
  • Informix defining an INTERVAL with a parameter
  • How to make build definition in TFS Build 2010 configurable w.r.t input variable values and “items t
  • How to prevent direct access to properties when inheriting from a base provider?
  • C# TimeZone Calculation Problem
  • Copying attributes in Javascript
  • Sort version strings on bash
  • How to have a website splash screen (web app)
  • Android - Call default browser with and redirect to a designated url
  • Persistent stty Settings?
  • dismiss Progress Dialog in another Activity … Android
  • How to remove all of a jQuery UI dialog when it is closed
  • Python adding lots of things to PATH. How do I stop?
  • Changing references to deprecated methods C++
  • is there a way to update filter with async data
  • Configure nginx to return different files to different authenticated users with the same URI
  • OSX - always hide certain files
  • Compiling dlib on OS X
  • How to generate and display a QR Code in ionic 2
  • How to assign byte[] as a pointer in C#
  • Copy to all folders batch file?
  • Visual Studio 2010 debugger build correctly - compiler pdb and linker pdb not in synch?
  • Make VS2015 use angular-cli ng at build time in a .NET project
  • Atlas images wrong size on iPad iOS 9
  • D3 nodes and links from JSON with nested arrays of children
  • Alert pop up with LWUIT
  • Change Inet root folder for iis 7
  • Sails.js/waterline: Executing waterline queries in toJSON function of a model?
  • What is Eclipse's Declaration View used for?
  • Updated Ionic CLI but shows previous version (Windows)
  • Apache 2.4 - remove | delete | uninstall
  • How to set the response of a form post action to a iframe source?
  • how does django model after text[] in postgresql [duplicate]
  • Change div Background jquery
  • Qt: Run a script BEFORE make
  • reshape alternating columns in less time and using less memory