Let me start with this disclaimer: this is not a supported environment. You may/will run into problems and then you’re on your own. Microsoft will not help you here. If you want to develop for Surface (v1, that is, since that’s the only one available at this time of writing) you will have to use Windows Vista 32bit and Visual Studio 2008 Pro or higher.
So, that’s out of the way. Let’s return to the real world.
I am, of course, running Windows 7 Ultimate (64bit) and Visual Studio 2010 Ultimate. After all, those are the tools of today.
I recently installed a new machine (well, reinstalled an old one) with the above mentioned tools. I followed the steps mentioned in Brian Peeks post and everything seemed to be all right.
Until I started debugging an application. As soon as I clicked somewhere inside the simulator, the debugger sprung to life with a very helpful NotImplementedException. And it occurred somewhere deep in the system, not in my code. I did a search through my code but there was no mention of this exception anywhere. That means it must be somewhere in the Surface SDK’s. But since I don’t have the source for that, I can’t fix that!
It took me about 30 minutes to realize what went wrong, and I am sharing this here with you to prevent you from chasing this yourself. And yes, I do feel a bit ashamed since it is sooo obvious (in retrospect of course).
I forgot to set the target architecture of my application to x86.
That was all. It compiled to x64 and that just won’t work. Now that I’ve changed the target architecture the whole thing works like a charm. As it should.