Migrating From vs 2005 to 2008
So I just finished migrating a whole slew of our large solutions and projects from Visual Studio 2005 to Visual Studio 2008. The conversion process itself was really simple and painless (and not too time consuming). There were a few gotchas with our Setup (AKA Deployment) Projects however:
- It appears that Microsoft moved the location of it’s prerequisite packages for the BootStrapper for VS 2008. Microsoft used to keep them at C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages, but now in 2008 it looks they have moved them to a more isolated and common location. The new location is C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper\Packages. When I converted our setup projects to VS 2008 format, some of the prerequisites couldn’t be found because of this. I just went to the old VS 2005 BootStrapper location and copied the folders of the packages I needed to the new VS 2008 location (for example, the MDAC package is under a folder called MDAC28, and it is not in VS 2008’s list of packages by default anymore).
- We had a folder structure into which we were dropping the Primary Output of a web application in our setup projects. For a web application project, the Primary Output is the DLL libraries in the bin directory of the web site. In VS 2005, you would create a bin folder at the root level of the web site and put the Primary Output down a level in the bin folder. Well, now in VS 2008, it appears that wherever you put the Project Output, the setup project will create a bin folder at that location and put the DLL libraries in that bin folder one level down from where you put the Project Output. So I had to go back through our setup projects and move the location of those Primary Outputs one level up (or else it would create a bin folder inside of the bin folder).
One nice thing about the migration to VS 2008 is that it looks like Microsoft has a new version of the Visual C++ Runtime Libraries prerequisite (I don’t know if the libraries are actually any different, but at least the redistributable package and logic are improved). We have a set of products that have this package as a prerequisite during install. Every time you ran the installer it would reinstall the package. It was almost as if it wasn’t doing any logic to detect if it already had the package installed. The following link might be the explanation of why we were seeing this odd behavior (even though it references the MDAC package): http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=339044&SiteID=1
Well, the new Visual C++ Runtime Libraries package works great and doesn’t keep reinstalling itself as a prerequisite with every install or update of one of our products that depend on it.
FOLLOWUP (06/19/08): Actually, we ended it up having to revert back to the Visual C++ Runtime Libraries from Visual Studio 2005, as another prerequisite we were using (DTSearch) wasn’t compatible with the new C++ libraries with VS 2008. We’ll check again next year.