Ignatius_J
Member
- Joined
- Aug 11, 2011
- Messages
- 5
- Programming Experience
- Beginner
Hi all!
Programming level:
Beginner. (Please have this in mind if my problem is a real newbie question, thanks :smile
IDE:
Visual Studio 2008 Professional
Situation:
In a VB.NET (3.5) Windows Forms application that, among other things, creates Microsoft SQL Server Integration Services (SSIS) Packages, we want to be able to support the creation of packages both for SQL Server 2005 and 2008. To create packages compatible with SQL Server 2005, functionality from external Microsoft assemblies with the specific version of 9.0.242.0 are needed, and to create packages compatible with SQL Server 2008 the same assemblies need to be referenced, but with another version number, 10.0.0.0. There does not, unfortunately, seem to be backwards compatibility in that SQL-2005 packages could be created using functionality in the newer 10.0.0.0-assemblies.
Today, we have a very inefficient way of handling this. For each new release of the app, we have to:
I have learned that with a few tricks it is possible to reference and use identically named assemblies with different version-numbers in the very same project. But even then if we manage to do this, since the client machine always will only have only one set of the assemblies installed in its GAC (9.0.242.0 or 10.0.0.0 versions depending on which SQL Server version it has installed), and we need to reference both sets in the project to have "full support" for both 2005 and 2008, how can we avoid potential “missing dll-messages” when the client runs the app? We do not feel very excited about having to ship/install 2005-assemblies on a 2008-server and vice-versa, that would never be used by the application, even if this would constitute a solution to the above problem.
Needed:
I am sorry if this is a really basic question for which there is a simple solution. But since I'm relatively new to software development in .NET, any guidance on a better way of handling the above situation is very much appreciated.
Thankful for any help!
Martin
Programming level:
Beginner. (Please have this in mind if my problem is a real newbie question, thanks :smile
IDE:
Visual Studio 2008 Professional
Situation:
In a VB.NET (3.5) Windows Forms application that, among other things, creates Microsoft SQL Server Integration Services (SSIS) Packages, we want to be able to support the creation of packages both for SQL Server 2005 and 2008. To create packages compatible with SQL Server 2005, functionality from external Microsoft assemblies with the specific version of 9.0.242.0 are needed, and to create packages compatible with SQL Server 2008 the same assemblies need to be referenced, but with another version number, 10.0.0.0. There does not, unfortunately, seem to be backwards compatibility in that SQL-2005 packages could be created using functionality in the newer 10.0.0.0-assemblies.
Today, we have a very inefficient way of handling this. For each new release of the app, we have to:
- Build two different versions of the app, one “2005-compatible .exe” and one “2008-compatible .exe”, by:
- Manually add/remove the specific 2005/2008-references at project level (properties).
- Comment/uncomment respective code that is not common between the two versions of the same assemblies.
- At installation time of the application, figure out if the machine runs SQL Server 2005 or 2008 and then install the corresponding build/version of the app.
- We do not ship or install any assemblies with our application but instead rely/pre-requisite on that the machine on which we install our software has either the 2005 or 2008 assemblies installed in its GAC (depending on whether SQL Server 2005 or 2008 is installed there).
I have learned that with a few tricks it is possible to reference and use identically named assemblies with different version-numbers in the very same project. But even then if we manage to do this, since the client machine always will only have only one set of the assemblies installed in its GAC (9.0.242.0 or 10.0.0.0 versions depending on which SQL Server version it has installed), and we need to reference both sets in the project to have "full support" for both 2005 and 2008, how can we avoid potential “missing dll-messages” when the client runs the app? We do not feel very excited about having to ship/install 2005-assemblies on a 2008-server and vice-versa, that would never be used by the application, even if this would constitute a solution to the above problem.
Needed:
I am sorry if this is a really basic question for which there is a simple solution. But since I'm relatively new to software development in .NET, any guidance on a better way of handling the above situation is very much appreciated.
Thankful for any help!
Martin