Showing results for 
Show  only  | Search instead for 
Did you mean: 
Level 11

Installing Same .dll to Multiple Locations...

Hi all,

We are soon going to be undertaking the task of streamlining our installs and here is a situation that I would like to cleanup....

First, for background... our core application has some interop .dlls installed to the main program/application directory. These same interops are used in various places throughout the application. What happens is this. During our installation build script, the interops for the core application are compiled then copied to the various subfolders where they are needed. What results is an overhead of 77-80 additional files in the installation that are exactly the same.

What I would like to do here to clean this mess up is have all the ancillary applications that are installed as part of our core app reference the .dlls in the core program installation folder instead of their own application folder. This, of course would be a development initiative, but would clean up the install considerably.

I was just wondering if this was the best approach.

There is another piece. We have some PlugIn installations that, when installed, detect the core apps presence and copy the interops where needed for this new PlugIn. I would think the same could/should be done here as well - just reference the .dlls in the core programs installation location.

Does this sound like a good plan or are there other ways of handling these scenarios. We like to try to keep to ourselves in that we don't like to have to write anything to the GAC, SxS folders, etc.

Since none of the ancillary applications or the external PlugIns will function or even install without the presence of our core application, I don't think we have to install the .dlls for each, use ref counts, etc.

The practices described above are ancient practices that I think should be cleaned up as much as possible.

Any insight would be greatly appreciated!

Again, I think this is more or less a core/PlugIn development issue and not that of installation development, but hopefully any added responses will clear it up for me.

Thanks in advance!!!!
Labels (1)
0 Kudos
(2) Replies
Level 7

That is not too difficult. We include a single .dll file once, but create multiple components of which each places it in a different location. Such as C:\program files for one and C:\windows\assembly for others.

What you need to do is become really friendly with the component view. You can even start logically naming the components for their destination as well.

If it's a dll, it has to be a key file, (Right click and set as key file) and then set the destination to wherever you want it to be.

Lastly, you need to associate any components created in this view with a feature. This is done by clicking on Setup Design in the left Panel, and then right clicking your feature and selecting 'Associate Component'.

Speaking of plugins, we have a fairly complex application which installs plugins into Adobe Reader, Office 2003-2007, Outlook, and Internet Explorer. We create separate features for these so that in the custom install view people can choose which plugins they want to install.

If you need anymore help, shoot me a PM. I know how it feels to be a bit lost on this stuff.
0 Kudos
Level 11

I know how to do most if not all of that, but I'm wondering if I really need to carry all the overhead of duplicate files all over the place.

I think that's kind of a waste and a recipe for disaster down the road.
0 Kudos