Windows Mobile 5.0 SDK and Windows Vista? Some tips available...

Some people have been experiencing issues when installing/running Windows Mobile 5.0 SDKs on Windows Vista. Most common issues are:

  1. SDK complains about lack of Activesync
  2. SDK seems to install but there is no project template available when you try to create a new project
  3. Unable to create native (C++) projects (you can't to go through the wizard).
  4. Cannot deploy/debug to a device over Activesync in Vista

We have identified these issues and while teams are working on possible fixes, I would like to purpose workarounds to unblock some scenarios for testing Windows Mobile application development on a Windows Vista machine. Let me try to briefly explain each issue and propose an unsupported workaround:

Workaround 1: Activesync requirement during install & Vista
As you may know, Windows Vista comes with device synchronization technology in the box and it does not require Activesync to be installed to synchronize your device with the desktop - it is called Windows Mobile Device Center (WMDC).

WM 5.0 was designed to be supported only on Windows Server 2003 & Windows XP (no Vista at that time :-), and for those platforms, Activesync is required to allow application deployment to the device. The good thing is that it was implemented as a soft requirement: just click "ok" in the popup window and continue installation. You do not need to install AS on Vista.

Workaround 2: No Windows Mobile 5.0 Project Templates
During SDK installation, one of the scripts is requiring "elevated privileges" to execute correctly. If you have "User Account Control" (UAC) turned on, this script will silently fail and, although installation will apparently finish successfully, the project templates will not get installed.

How to work around it? Simple, just turn off UAC (Control Panel, User Accounts, Change Security Settings) and install or repair the SDK. You can turn UAC back on after installation.

Workaround 3: Unable to Create Native (C++) Projects
VC++ Project Wizards are pretty much HTML files + scripts - Visual Studio uses IE to render and present those "web pages" as a wizard. The problem is that, due to the new security model, IE7 does not trust some of those scripts; as a result you keep getting the "New Project" dialog and can't move forward on the wizard. The workaround here is to let IE know that the smart device VC++ wizard is a nice guy and ok to run.

You will need to open the registry entry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Ext\PreApproved

And add a new entry named: {D245F352-3F45-4516-B1E6-04608DA126CC}

Workaround 4: Unable to deploy/debug over Activesync
 This is the issue I like most :-) As we saw on item 1, Windows Vista comes with WMDC which substitutes Activesync - it acts like AS but it is not AS! That means there is "no information" about AS in a Vista box, in particular, the registry key that identifies Activesync as installed is not present - Visual Studio checks for that registry key before loading the appropriate component to deploy the application to the device, the registry is not there and the deployment fails - all components are ok, we are just missing the registry info...

So guess what? Let's create the missing registry entry!

Open the  registry entry: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows CE Services

And add the following entries:

MajorVersion (DWORD) = 4
MinorVersion (DWORD) = 0

These hints will help you on beta testing Vista as a development platform for Windows Mobile. However it is important to note that these are unsupported workarounds to let you test the "Visual Studio 2005 + Windows Mobile 5.0 SDK + Windows Vista Beta" combo. Don’t try them on your production system ;-)

Have fun!