lundi 4 août 2008

Déploiement de clé de registre avec valeur par défaut dans un MSI

Le template de projet Setup Project de Visual Studio, permet aisément de créer des clés de base de registre et c'est tant mieux. Par contre là où c'est moins bien, c'est que le designer ne permet pas de définir la valeur par défaut de la clé de registre.

Exemple :
Je veux créer une clé de registre avec comme valeur par défaut "toto va au marcher".
Si j'ajoute simplement une string value à ma clé et que je lui donne comme nom (Default), on pourrait croire que ça marchera mais en fait non. Le MSI va créer 2 clés de registre avec le nom (Default), une avec ma valeur "toto va au marcher" et une sans valeur.

Résolution :
Et la où c'est pas terrible c'est que le designer ne propose pas de solution évidente à part une manipulation sordide trouvé dans les MSDN : http://msdn.microsoft.com/fr-fr/library/xkfz6802(en-us).aspx. En voici un extrait au cas où Microsoft décide de fermer la page... par honte du contenu :
...
To specify a default value :
- Select a value name in the right-hand
pane of Registry Editor.
- Right-click the value name and then click Rename.
- On the Edit menu, click Delete.
- Press ENTER. The name is replaced
with '(Default)'.
...

Le plus moche c'est que cette manipulation n'a pas fonctionné pour moi...

La solution qui a marcher pour moi c'est de créer un fichier .reg à partir de l'éditeur de base de registre et de l'importer ensuite dans le designer de Visual Studio. (Clique droit sur Registry Target Machine -> Import)


Bonne programmation à tous.