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

Z

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.
 
M

Mythran

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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top