Friday, July 17, 2009

Upgrading from VS2005 to VS2008

Migrating a few fairly large solutions from VS2005 to VS2008. A few gotches:

mt.exe, the manifest generator tool, has moved. Looks like they're taking a more standardized approach; instead of shipping a custom SDK inside the visual studio directory they're installing it in the program files\Microsoft SDKs directory. That plural looks a little weird but at least it's ALMOST the same location as when you download the Windows SDK separately and install it.

Hardcoding CRT/MFC Side-by-Side assembly versions in manifest files can result in strange SxS errors when you upgrade the compiler (upgrading to VS2008 implicitly upgrades the VC++ compiler).

Using pre-build and post-build events to do things that can be done through project settings slows down the conversion. Since VS isn't aware of these settings when paths and directories change they're not automatically corrected. In general, anything that can be done through the Project Settings should be.

Not sure why but one C++ project, a unit test project designed to test interop, could no longer statically link the c runtime library (a stream of offset errors was returned from the linker). Since it's a unit test it only runs in the build environment which has the runtime library dlls so switching this to use them was the fix.

At least on a small team, the developers can keep on working as long as they're not making project file changes. Code changes aren't, usually, affected by the upgrade.

No comments :

Post a Comment