With the launch of Visual Studio 2010 this week a lot of people will start upgrading to the new version. After the installation was complete I noticed the Surface project and item templates were not available. In this post I explain how to get the entries in Visual Studio 2010.
First of all you need to realize that the templates are part of the Microsoft Surface SDK. If you have it installed, skip the next paragraph.
INSTALLING the SURFACE SDK
If you are running Windows 7 or a Windows Vista x64, you need to apply the changes described in a previous post: "Installing the Microsoft Surface SDK on Windows 7 x64".
If you don’t have Visual Studio 2008 on your system and want to start with Visual Studio 2010 from scratch some additional steps are needed patching the Surface SDK Installer. For details on the patch process see the earlier referenced post.
Patching the installer
When you’re patching the MSI with the Orca tool remove also the following conditions:
Select the row with "Installed OR (VS2008SPLEVEL AND VS2008CSPROJSUPPORT) OR VCSEXP2008SPLEVEL" and choose "Drop row"
Select the row with "Installed OR (VS2008SPLEVEL AND VS2008SPLEVEL >= "#0") OR (VCSEXP2008SPLEVEL AND VCSEXP2008SPLEVEL >= "#0")" and choose "Drop row"
Select the row with "Installed OR DEXPLORE" and choose "Drop row"
Select the row with "Installed OR VS90DEVENV OR NOT VS2008SPLEVEL" and choose "Drop row"
Select the row with "Installed OR VCSHARP90EXPRESS OR NOT VCSEXP2008SPLEVEL" and choose "Drop row"
Copying the Templates from the SDK
Now that you have installed the Surface SDK the subsequent steps are quite simple.
The following lines are for x64 systems. If you’re running on x86 change "Program Files (x86)" into "Program Files".
xcopy /s "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ItemTemplates\CSharp\Surface\v1.0" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Surface\1033\"
xcopy /s "C:\Program Files (x86)\Microsoft Visual Studio 9.0\Common7\IDE\ProjectTemplates\CSharp\Surface\v1.0" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\Surface\1033\"
cd "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE"
devenv /setup
After this is finished launch Visual Studio 2010.
The "New Project" dialog with the Surface Application templates listed.
(Remember to select .NET Framework 3.5)
The "Add New Item" dialog with the Surface Control templates listed.
Today the Microsoft Virtualization Team announced the availability of the new beta version of the Linux Integration Services for Hyper-V. There are three big changes in this version:
- Virtual machines will be able to use up to 4 virtual CPU’s.
- Virtual machines will be able to synchronize their time with the parent partition.
- Virtual machines will be able to shutdown gracefully from the Hyper-V manager.
In this post I will try the new features.
Linux Integration Services for Hyper-V 2.0
First I got a Virtual machine (VM) installed as described in my previous post “Running CentOS 5.x on Hyper-V“. I used the current released stable version of the Linux Integration Services (LIS): Version 2.0.
On boot time VMBUS displays Version 2.0
My Hyper-V host only has a dual-core CPU. So it’s impossible for me to test the 4 CPU support. I couldn’t find any differences with 2 CPU’s.
Shutdown from Hyper-V Console
With the current version of the LIS when I press the shutdown button I get the following error:
![]()
Hyper-V Console shows the error “Failed to shut down the virtual machine.”
Time synchronization
With the current version of the LIS I had a lot of trouble with the clock of the VM getting out of sync very fast. I did a post to fix this: “Correcting time drift with CentOS on Hyper-V“.
I did not implement the fix on the VM I created for this post to demonstrate the problem:
![]()
The VM gets an offset of multiple seconds within minutes.
Linux Integration Services for Hyper-V 2.1 Beta
To get the beta drivers you need to download them from the Microsoft Connect website. (Look for the Linux Integration Services for Hyper-V project site).
I installed the new drivers in exact the same way as the 2.0.

On boot time VMBUS displays Version 2.1.2
Not only the new version number is displayed, also the new Shutdown and Timesync channels are mentioned!
Shutdown from Hyper-V Console
Pressing the shutdown button now gives a more expected result:
![]()
The VM receives the signal to shutdown and calls /sbin/poweroff
![]()
The VM is gracefully turned off.
Time synchronization
With the new LIS the time is pretty much stable, nothing NTP can handle. There is no need to change the boot command in grub anymore.
![]()
The VM only shows a minimal time difference over the course of minutes.





