Home All Groups Group Topic Archive Search About

How do you handle versioning of a multi-project solution?

Author
20 Jul 2006 3:16 PM
zacks
Am using VB.NET 2005.

I have a solution that has four projects. Two projects are standard
windows applications. One is a class library that is shared by the two
windows application projects, it is primarily used to
serialize/deserialize an XML configuration file.. The third project is
a standard Setup project that installs the two windows applications. My
question is regarding versioning of the solution.

I would like for the entire solution to be considered as a single
version. But each project's properties has it's own version, and
they are not synchronized with each other.

And when the two applications crank up and they display their version
in a splash screen they get it from an Application property which is
their own project's version. And when you look at the entry in the
Control Panel Add/Remove programs, the version displayed there is the
version of the setup project. And to make an upgraded setup do an
automatic removal of the previous version you have to increment the
Setup project's version with each new build.

To top it off, I would like to have an attribute in the first line of
the shared application's XML config file to indicate the version, so
each application can verify that the config file agrees with the
solution's version.

It's all a mess. I'm wondering how others manage versioning in a
solution that has multiple projects.

Author
20 Jul 2006 4:48 PM
Mythran
<za***@construction-imaging.com> wrote in message
Show quoteHide quote
news:1153408586.473432.111300@m79g2000cwm.googlegroups.com...
> Am using VB.NET 2005.
>
> I have a solution that has four projects. Two projects are standard
> windows applications. One is a class library that is shared by the two
> windows application projects, it is primarily used to
> serialize/deserialize an XML configuration file.. The third project is
> a standard Setup project that installs the two windows applications. My
> question is regarding versioning of the solution.
>
> I would like for the entire solution to be considered as a single
> version. But each project's properties has it's own version, and
> they are not synchronized with each other.
>
> And when the two applications crank up and they display their version
> in a splash screen they get it from an Application property which is
> their own project's version. And when you look at the entry in the
> Control Panel Add/Remove programs, the version displayed there is the
> version of the setup project. And to make an upgraded setup do an
> automatic removal of the previous version you have to increment the
> Setup project's version with each new build.
>
> To top it off, I would like to have an attribute in the first line of
> the shared application's XML config file to indicate the version, so
> each application can verify that the config file agrees with the
> solution's version.
>
> It's all a mess. I'm wondering how others manage versioning in a
> solution that has multiple projects.
>

We use InnoSetup (freeware) for our installations, which we believe are a
whole lot better than the MSI installer.  For versioning, if you don't have
any web applications in your solution, you can use a single AssemblyInfo
file and have all projects use that AssemblyInfo (global) as well as their
own AssemblyInfo (per-project).

The version would go into the GlobalAssemblyInfo file, while the
project-specific settings would go into the AssemblyInfo file.

HTH,
Mythran