Cette partie ne va concerner que les personnes ayant un Windows non compatible avec le SDK, à savoir les Windows 64 bits et les éditions Familiales. Pour les Windows XP, il n'y a néanmoins aucun moyen de faire tourner le SDK.
J'imagine que certains n'ont pas résisté et ont quand même essayé de lancer l'installation pour se retrouver avec un message d'erreur :
Pour pouvoir contourner ces limitations, nous allons avoir besoin d'Orca, un petit utilitaire permettant de modifier les installeurs MSI.
Si vous avez installé le SDK de Windows, vous trouverez certainement son installeur dans : C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin\. Autrement, vous pouvez toujours le télécharger à cette adresse :
http://www.technipages.com/download-orca-msi-editor.html.
Contrairement à la première version du SDK qui était directement fourni sous la forme d'un installeur MSI, le SP1 est packagé dans un fichier exécutable. Afin de récupérer l'installeur depuis le package, je vous propose une solution relativement simple : ouvrez le fichier exécutable avec Visual Studio (oui, oui : Fichier -> Ouvrir).
Vous devriez obtenir ceci :
En développant la partie RCDATA, une liste d’élément apparaît, dont un nommé « MSI00 ». Faites clic-droit dessus, puis Exporter. Enregistrez-le où vous souhaitez, et modifiez l’extension en .msi à la place .bin.
Cas des Windows 64 bits
Si vous êtes en 32 bits, vous pouvez sauter cette partie pour continuer avec Orca. Pour ceux qui sont en 64 bits, nous allons avoir besoin d'effectuer une opération supplémentaire.
Alors que nous pourrions dès lors utiliser directement Orca pour supprimer les conditions d’installation, nous allons rencontrer un problème avec un exécutable qui est exécuté en 64 bits alors qu’elle devrait se lancer en 32 bits, causant une erreur et annulant l’installation. Nous avons besoin de modifier le comportement de cet exécutable pour la forcer à se lancer en 32 bits. Pour cela, nous allons extraire tout le contenu de l’installeur MSI. Lancez un invité de commandes (cmd.exe) en mode Administrateur, placez-vous dans le dossier contenant l’installeur MSI, puis tapez la commande suivante : « msiexec /a SurfaceSDK_SP1.msi /qb TARGETDIR=c:\surface_sdk », en étant dans le dossier contenant l’installeur, et adaptant bien sûr le nom du fichier MSI. Le paramètre TARGETDIR indique le dossier où seront extrait les fichiers, adaptez-le à votre guise.
Une fois ceci fait, vous devriez trouver un ensemble de fichiers, dont un installeur MSI (encore un

), c'est celui-ci que vous devrez par la suite ouvrir avec Orca. Mais revenons à notre problème initial. Nous allons devoir forcer un exécutable à se lancer en 32 bit. Pour cela, ouvrez l’invite de commandes de Visual Studio (menu Démarrer -> Microsoft Visual Studio 2010 -> Outils Visual Studio) en mode Administrateur, puis placez-vous dans le dossier où vous avez extrait l’installeur, puis dans le dossier « Microsoft Surface\v1.0\ ». Enfin, exécutez la commande :
corflags setupcustomaction.exe /32bit+ /force
Dans le cas où vous n'avez pas l'invité de commandes de Visual Studio, vous pouvez essayer de
télécharger corflags et de l'utiliser depuis l'invité de commandes classique de Windows.
Modification avec Orca
Maintenant que nous avons notre MSI prêt (rappel pour les utilisateurs en 64 bits, c'est le MSI extrait du premier MSI qu'il faudra ouvrir et exécuter), nous allons pouvoir procéder à la suppression des contraintes.
Ouvrez donc le MSI avec Orca. Vous devez obtenir une vue avec des noms de tables à gauche, et les conditions à droite. Dans la liste des Tables, cherchez celle nommée LaunchCondition. Faites un clic-droit, et supprimez là.
Sauvegardez les changements et quittez Orca. Vous devriez alors pouvoir lancer l'installation sans soucis, et même utiliser le Simulateur, sauf si vous êtes en 64 bits (eh oui, encore...).
Configuration du simulateur (64 bits uniquement)
Bien que l'installation se soit bien déroulée (du moins, j'espère

) le simulateur ne fonctionne pas, et cela se traduit simplement par un crash du simulateur au lancement. Il est néanmoins possible de résoudre le problème en forçant l’application à se lancer en 32 bits et non en 64 bits (au même titre que pour l'installation). Pour cela, lancez l’invite de commandes de Visual Studio, placez-vous dans le dossier du simulateur (Program Files (x86)\Microsoft SDKs\Surface\v1.0\Tools\Simulator), et exécutez la commande :
corflags SurfaceSimulator.exe /32bit+ /force
Cette même commande doit être utilisée pour tous les fichiers exécutables du dossier « Program Files (x86)\Microsoft Surface\v1.0 » (Attract.exe, AttractConfig.exe, SurfaceInput.exe, SurfaceOutOfOrder.exe et SurfaceShell.exe). Une fois fait, le simulateur devrait pouvoir se lancer sans problème.
Au même titre que le simulateur, si l’application se lance en 64 bits, elle plantera au démarrage. Ce qui fait que l’ensemble de vos applications devra être compilé en 32 bits. Par défaut, Visual Studio compile en utilisant la plateforme Any CPU, qui fait que l’exécutable se lance dans la même architecture que l’OS (donc 64 bits avec un Windows 64 bits). Pour modifier ce comportement, une fois le projet chargé, il faut aller sur Générer -> Gestionnaire de configurations.
Dans la fenêtre : « Plateforme de la solution active -> Nouveau ». Sélectionnez x86 comme nouvelle plateforme.