Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

We are moving our software project from the practically auto-creating Visual Studio Installer in Visual Studio 2010 to a WiX installer. I'd like to use this change to make sure things are right.

The application is a subsidiary to our company's main app that will already be installed in its own folder. The main app has a lot of dlls, some of which the subsidiary app needs to load to work.

With the previous installer, the required dlls are pulled into the project and included in the subsidiary app's installation folder. However, this seems to create possible problems:

  • Multiple versions of the same dll creates confusion, especially if we produce another app in the future.
  • If the version of the main app changes, the updates are missed by the subsidiary app.

I'm not comfortable with adding our app to the same folder, because they are developed and maintained by different groups.

Instead of this, perhaps I could add the path of the main app to the PATH environment variable. Would this work, and are there concerns with doing this?

Is there some other way to approach this issue?

share|improve this question
Since you are using VS, you may be using .Net. In this case, with your plans, you need to understand how .Net assemblies are found by the .Net framework. This is explained, for example, on this page: – Thomas Jul 26 '13 at 15:15

You are probably better off having the DLL's in their own respective directories. This way if one group changes one of them in a way that conflicts with an application from another group, it wont impact that application. I wouldnt worry about having duplicate DLL's - in the scheme of things its probably not much disk space.

Another approach to consider may be to have a shared 'common' directory thats used by all the groups in your company. A path such as "c:\program files\common files\CompanyName". (if you look, you'll likely see you have a 'common files' path in your 'program files' directory already, as many larger vendors do this). Of course, if you do that, you need to commit to testing every DLL change against all apps that might use that DLL.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.