I installed the 90-day trial of Visual Studio 2008 Professional and have just finished getting Paint.NET to work in it. So far, here’s what I’ve run in to, good and bad:

  • The new version of the C# compiler (csc.exe) produces slightly smaller binaries in a few cases. This is good.
  • It can also understand “Vista icons”. That is, you can embed a 256×256 icon with PNG compression into an EXE. With Visual Studio 2005 you could have a 256×256 icon but not the PNG compression or you’d get a compiler error.
  • Apparently the order in which items is returned via reflection has changed. This in itself is fine, but it has exposed a logic bug in my IndirectUI code! It’s a rather subtle bug that is very obvious once you understand it. This was a case where things were accidentally working because “A” had a superset of the properties that “B” had, and my system was always taking the first item’s list of properties and using it for both (which was the bug). Now for some reason, “B” comes before “A”, so “A” is only getting the 2 properties that “B” specifies instead of the 7 that “A” is stating. Oops.
  • They fixed the build parallelism bug that was really biting me! In Visual Studio 2005, the part of the build which created MSI’s using the built-in “Setup Wizard” project type would not block the rest of your build which was properly flagged as dependeing on it, from building. This caused a major race condition for building the MSI and then building the self-extracting EXE that bundled it. To work around that I had to set the maximum build tasks to 1. Now it works great!

These are all good for me. Faster build times and smaller files to distribute.