How to debug remotely your Microsoft PixelSense application
Recently I receive request on how to debug a Microsoft PixelSense application from Visual Studio, either from customers or forums.
You will find below experience I get and what works for me in such approcah
When debugging on Microsoft Surface there are 2 ways of doing it:
- By having a developpement environment installed directly on the SUR40 for debugging on the machine
- By using remote debuging
Developpement environement on the unit
Personnaly with past experience on the previous verison of Surface, I was expeimenting the first approach. This solution require some good organisation. Organisation in the sense that installing a complete developpement environement can result in an unstable environment. So of course I would not recommand that approach on a production unit. Before going to such solution you should take care to get in hand a clean backup system in a safe place in order to be able to recover a clean machine. The way I was using it is by creating a deployement image of the SUR40 machine at the desire state I want it. Then keep the generated .WIM file in a safe place. At anytime with that file and a WinPE boot disk I can recover my clean system. Once done you can install whatever you want on the unit and debug directly on it.
I have spend some times to explore the remote debuggnig on Surface and what do we need for that.
The first thing to consider is the way you are going to identify remote users. In case you connect your unit to your company domain, then user rights will be much easier to manage and hande. In the oposite, you will need to have your developpement account on on your dev machine duplicated on the Surface unit.
Setup the SUR40 environment:
- Ccreate the same account used on your dev machine or login in to your domain with same account
- Install on the VS2010 remote debugger ( 64 bits or 32 bits based on your scenarios ). You can get those binaries from http://www.microsoft.com/fr-fr/download/details.aspx?id=475
- Create a folder that will receive you compile debug bits ( for instance C:\RemoteAppDebug)
- Be sure to get full right on that created folder from your dev account on your dev machine
Set up your Visual sudio environment:
- Open your Surface project
- Compile your project in Debug and copy all bits including symbole files to your RemoteAppDebug directory on your SUR40
- Create a new configuration setting and call it “Remote Debug SUR40”
- Right click on your project and select properties
The following picture illustrate setting to define for your remote debugging :
As shown above the important thing is to set the Remote Folder of the SUR40 defined earlier as it would be on the local machine.
What I mean here is if you map for instance the C drive of the SUR to a drive on your machine in will not work.
The next step is to specify that you need to run the debug setting on a remote machine. As shown on above picture be sure to check the “Use remote machine” option and specify the name of your SUR40 in the text box.
In case you are not connected to a domain with your SUR40 unit, you will have to enter here the machine name by passing the account to be used like <username>@Machinename
When you have all this in place you can now debug your application. For that you need to :
Start the Visual Remote debugger on the unit based on the target aplication you deploy ( x86 or x64 )
Be sure you can access to the RemoteAppDebug folder from your devlopment machine
Press F5 to start debuggin your application
Trouble you might face on :
– Firewal settings which prevent the conection with your remote environment
For those , please refer to recommandation and check settings according to the following information :
IMPORTANT : This debugging scenario allows you to debug you application when the SUR40 is in administrative mode as this request need admnistration priviledge