I found out (through the grapevine) that I needed to build a Setup Project for my application, and in the process of putting all the pieces together I discovered something called a "Merge Module" described by Visual Studio 2010 as "an install module for shared components".
Interesting. My project contains no fewer than four shared modules: a database connectivity module, a cryptographic module, an external machine interface module, and a custom control. By their very nature they can be included in more than one project, and are considered (by that definition) as 'Shared Components'. But would I need to somehow build MSM files for each of them and (somehow, I'm not really sure yet) add them to my final Setup for this application?
Or am I reading too much into all of this?
You see - I figure that as time goes by, the Machine Interface Module will most definitely grow, yet remain backward-compatible if for no other reason than that's how I operate. So it is distinctly possible that another install may utilize a higher version of that Module and install it [in place of]/[over] the previous version --- which is okay for our purposes.
Or will it? Will it install a local copy for the application and move forward? I'm not sure, and I don't want to shortcut the process "in the now" causing heavier complexity to other (installed) projects "in the future". (Does that make sense? I sure hope so...)
I envision the installation of each of these modules as re-usable library (or in one case Control) types, openly accessible to other projects as well. But I'm not quite "getting it" where constructing Merge Modules and installing shared components is concerned.
Am I over-complicating matters, or is this something that I should "take the bull by the horns" and learn for the sanctity of further projects down the road, even before they are developed/realized?
Thanks for your views, understanding and guidance,
- The Lurking LongFist