Well, the OGRE community has been taking it’s first look at VC8 (2005) Express Edition, which on the face of it seems like quite an incredible deal - a free copy of a great IDE with an optimising compiler and all the tools you need to make most native applications with C++ (among other things, but that’s what we’re most interested in). Besides a few minor missing features, such as a resource editor, 64-bit support and profile-specific optimisations, this seemed like the perfect tool for a budding native application writer. Stunning.
However, there is one major caveat. It appears that native applications written with VC8 express edition will not run on end machines unless the .Net Framework v2.0 is installed. That’s right - even though your bare-metal, purely native code application makes absolutely no use of .Net, it won’t run without it. It appears to be because VC8 insists on using relying on .Net assembly information even when you choose a native application, which is really not very convenient at all. This will need some more investigation over the coming days. If it is unavoidable, it means you have to distribute a wacking great extra library with your application or force the user to download and install it. Ouch. That means even though technically you could use Express to build, for example, a shareware / casual game, in practice you couldn’t sell it, since the .Net 2.0 requirement would completely blow the majority of your market out of the water because of the extra size of the download, the OS prerequisites and the technical sounding install requirements.
I hear that fully fledged copies of VC8 don’t have this limitation; I’d intended to buy one anyway, but it would have been nice to recommend VC8 express to people, since the VC IDE is still the best out there. What concerns me is that this dependency is pretty buried, and rather unexpected - I’m really hoping this isn’t something that applies to the full version; if it does I may just upgrade from my current 7.0 just to the old VC 7.1 instead (which I can get cheaper anyway) and be done with it. I really don’t want to be forced to use .Net if I don’t want to, and I especially don’t want to force users of my apps to install it.
I had loads of problems with my express install which seem linked with the fact that I’ve had a few betas of the full Visual Studio 2005 installed on this machine before which had not been removed cleanly. I thought I’d followed the overly anal uninstall procedure properly, but perhaps not. For others in this situation with ‘Package Load Failures’ and ‘CLR missing’ errors despite repeated uninstalling & reinstalling, try this link. The problems meant that I spent the majority of the time tonight downloading and installing and reinstalling rather than actually using VC8, so I’ll comment on features another time.