Installer un service Windows pour une machine 64 bits
Par L'équipe Bewise, posté le 12/07/2010
Si jamais vous avez le besoin de créer un service Windows qui doit marcher uniquement sur machine 64bits, ou utilise des DLL 64bits (comme celles d'OCS) et que vous créez un projet de Setup pour votre déploiement, vous courez vers de grosses déconvenues...
Le problème est le suivant:
Pour enregistrer le service sur la machine vous devez référencer l'output du projet de service dans les custom actions. Jusque là tout va bien. Mais à l'exécution du package d'install, vous aurez le droit à une belle exception de type BadImageFormatException indiquant que l'exécutable n'est pas compatible avec la plateforme.
La raison du pourquoi est indiquée ici:
Pour résoudre ce problème, suivez la procédure suivante:
-Installez l'utilitaire Orca qui fait partie du Windows SDK
-Ouvrez votre MSI dans Orca
-Dans les tables du package, ouvrez la table Binary
-Double cliquez sur la cellule [Binary Data] de la colonne InstallUtil
-Naviguez jusqu'au répertoire C:\Windows\Microsoft.NET\Framework64\v2.0.50727 et sélectionnez InstallUtilLib.dll puis validez
-Enregistrez les modifications puis ré-exécutez le package et votre service sera bien installé.
Bref... que du bonheur
