Introduction
This is a follow up post to Surface SDK on Vista x64 where we got the original Surface SDK working on the unsupported Vista X64. Last week Microsoft released Service Pack 1 of the SDK and there is an additional tweak that we need to get it going.
The original post was split into 3 sections:
- Patch the MSI and install
- Patch the Simulator and other files
- Configure our projects
Steps 2 and 3 haven’t changed with SP1 (we don’t need to “corflags” the new “stress” tool as it connects to the simulator rather than launching it), so jump over to the original post when you’ve got the SDK installed.
Prerequisites
- Surface SDK SP1 (duh!)
- Visual Studio 2008 (for corflags)
- Orca (part of the Windows SDK or just search for it)
- Administrator access to the Vista or Win7 box you’re installing onto.
Step 1 – The MSI
Firstly we need to use Orca to tweak the launch conditions of the MSI. Make sure you’ve installed all of the SDK pre-requisites first, then walk through the following:
- Install Orca (link above, or just search for it).
- Copy the SurfaceSDKWE.msi to somewhere on your hard disk, and make sure that it’s not Read Only.
- Right click on the MSI and choose Edit with Orca. This will trigger a UAC, but it’s software from Microsoft, so you should be ok to trust it 🙂
- Select “LaunchCondition” in the left hand list, then select “Install OR NOT VersionNT64” in the right hand list (see below).
- Press delete and click OK when asked to confirm the row delete.
This is where we got to with the original SDK, but the SP1 install will still fail if we leave it like that. As part of SP1 Microsoft has added automatic updates and automatic error reporting. Unfortunately the exe they call as a custom action doesn’t work on x64 (it looks like it puts registry entries in the wrong place), which causes the install to fail. We could extract the MSI, patch the custom exe with corflags and then run setup, but we won’t do that because:
a) We don’t want automatic updates as they will overwrite our nicely patched exes, and
b) x64 is not a supported platform, so I’m sure Microsoft aren’t particularly interested in error reports!
Instead of that we can just continue with Orca to remove those commands from the installer:
- From Orca, select “InstallExecuteSequence” in the list on the left and remove SetCreateSqmMachineGuid and CreateSqmMachineGuid as before:
- Click Save on the toolbar
Now you can quit Orca and run the msi, which should install just fine. Make sure you also switch off automatic updates and error reporting as follows:
Now the SDK is installed, head over to the original post and follow steps 2 and 3 and you’re all done.
Thanks to JamesK for his workaround comment on the original post.
Update: thanks to Michael Zervos for letting me know that the academic version of the SDK comes in EXE, rather than MSI form. As he points out on his blog, if you keep an eye on your %temp% directory when you run the EXE it will extract the MSI for you to copy and patch.
Update again: Thanks to Robin Sanner for providing details on getting the samples to work:
To get the samples to build and install correctly do the following:
– Edit the configuration properties for the sample solution and create an x86 platform for all projects.
– Edit InstallSamples.bat
– Comment out the lines on either side of the set as follows:
::FOR /F “eol=H tokens=2*” %%A IN (‘REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Surface\v1.0 /v IsLogicalSurfaceUnit’) DO SET LogicalTableValue=%%B
SET InstallingOnTable=false
::IF %LogicalTableValue%==0×1 SET InstallingOnTable=true
– Change the MSBuildParameters to reference the x86 PlatformName as follows:
SET MSBuildParameters=/p:Configuration=Release;PlatformName=x86 /noconsolelogger /fl /fileLoggerParameters:LogFile=%LogFile%;Append /nologo
Works like a dream…
Think you have a typo “CreateSwlMachineGuid” should be “CreateSqmMachineGuid”
Well spotted, thanks 🙂
Hey thanks for the solution.
If you download the Surface SDK from MSDNAA (Academic), you get a .exe setup file instead of the msi. I’ve posted a way to get the .msi from that file, together with links to your solution. If you want to update your post with that too, you can find it here: http://www.studentguru.gr/blogs/jupiter/archive/2009/10/07/surface-sdk-on-vista-windows-7-x64.aspx
Thanks for the heads up Micheal – I’ve updated the post.
SAVIOR
Thanks!
I have the Microsoft Surface SDK installed on my Windows 7 x64 machine, and everything works fine on it except the mouse. When I use the mouse the finger finger icon generated on the Surface Simulator is off by approx 100 pixels or so on the top and by 150 pixels or so on the right of the actual position where the mouse clicks at. Any Ideas on how to fix this?
The only time I’ve seen something similar was with 3rd party mouse drivers. Do you have anything like Intellipoint or any other mouse utility installed? The only other thing to try is to turn mouse acceleration right down in control panel and see if that helps.
Great Post. I have Windows 7 x64 and the instructions work perfectly.
Great Post !!!!!!!
On my windows 7 x64 the installation progresses until it wants to write something to the registry, and then i fails.
followed your instructions, but the shell keeps crashing when i launch the simulator