Getting certified for Windows Vista - part 1
After some hard work we've finally submitted PowerMapper, our site-mapping product, for "Certified for Vista" testing (aka logo testing).
The previous version had gone through the "Designed for XP" test, so we thought it would be easy to get certified for Vista. We were wrong.
The tests themselves are split into three areas:
- Security and Compatibility (test cases 1-10)
Most desktop apps should pass these tests with few, if any, modifications. The only change we had to make was a modification to the manifest, and remove a 16-bit DLL we used on Win 9x (which we've dropped support for).
- Install / Uninstall (test case 11-29)
This took a lot of time, since most common setup tools don't produce fully compliant setup packages (even the ones that claim to support Vista). More on this later.
- Reliability (test cases 30-32)
The only problem was supporting Vista Restart Manager (test case 30). This took a bit of work - apps needs to shutdown and restart within 5 seconds without the user losing any work.
Supporting the install/uninstall requirements was definitely the biggest headache. We've used InstallShield for nearly 10 years for building setups, but the two latest releases just couldn't produce a setup package that passed all the tests.
We eventually threw in the towel after three man-weeks and buying two upgrades: each of which was supposed to provide Vista compliant setups. The closest we got was passing 17 out 18 tests, so it was frustrating to change horses mid-race.
We evaluated a few different products, but the Vista logo requirements ruled out anything that can't produce MSI setup packages. WiX looked promising, but proved to be hard work to get going.
We eventually chose a product called Advanced Installer which costs less than InstallShield, but produced a compliant setup package after half a days work (remember we'd spent three man-weeks on InstallShield at this point). The user interface is quite similar to other setup authoring tools - though a bit more polished than most.
We only had a couple of minor annoyances with Advanced Installer:
- Setting up a file association for document files is error-prone unless you use the File Association wizard: it's easy to produce setups that install but your application's document files don't use the correct icon.
- The setup.exe produced by Advanced Installer 5.2.2 fails one of the App Verifier checks in test case 15. We worked around this by producing an MSI instead. The publishers of the program know about the problem and have promised a fix (they do one or two releases a month so the prospects look good). Now fixed in 6.0.0.
- There is a command line builder for integration with build systems, but if you've a password on your code signing key (and you should!) then it pops up a password dialog for each project being built (which causes problems for unattended or multi-product builds). This is also something they say they're going to look at. Now fixed in 6.0.0.
So that's it for today. We'll find out in a few days if we've passed testing and all the hard work has paid off.
Update: The setup.exe (test case 15) and command line builder issues were fixed in the 6.0.0 release in November 2007.
Tags: Certified for Windows
First posted Oct 2007