Lorsque je désinstalle mon service, j'obtiens l'erreur où il est indiqué que je dois arrêter tel ou tel service avant de procéder à la désinstallation. C'est insatisfaisant - le programme de désinstallation devrait l'arrêter automatiquement.Wix: Arrêt d'un service Windows lors de la désinstallation
J'ai trouvé un blog ou un groupe de discussion sur ce mois et je l'ai fait fonctionner correctement, mais maintenant il a cessé de fonctionner pour moi. Et je n'ai pas de lien vers le post ... peut-être que quelqu'un d'autre sait où c'est? :) Je suppose que j'ai changé quelque chose de subtil et ça a cessé de fonctionner. Je trouve Wix extrêmement difficile à résoudre.
J'utilise l'include suivant pour récupérer la propriété X_ WIN_ SERVICE_NAME (désolé je ne sais pas comment éviter _ d'échapper ici) du registre. Cela n'a pas d'importance à l'installation car dans ce cas, je l'ai explicitement défini avec un fichier d'entrée. Cette include est utilisée avant tout composant dans mon fichier wxs.
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?ifndef SetupXWinServiceRegistryProperties ?>
<?define SetupXWinServiceRegistryProperties ?>
<?define XWinServiceRegistryKey='Software\X\Y'?>
<Property Id="X_WIN_SERVICE_NAME">
<RegistrySearch Id="XWinServiceNameSearch"
Root="HKLM"
Key="$(var.XWinServiceRegistryKey)"
Name="ServiceName"
Type="raw"/>
</Property>
<?endif?>
</Include>
ci-dessous comprennent le composant est utilisé pour enregistrer la valeur de Registre sur l'installation:
<Include xmlns="http://schemas.microsoft.com/wix/2006/wi">
<?ifndef WriteXWinServiceRegistryProperties ?>
<?define WriteXWinServiceRegistryProperties ?>
<Component Id="CompWriteXWinServiceRegistryProps"
Guid="some guid">
<!-- Write properties to the registry. Then they will be
accessable during uninstall. -->
<RegistryValue Root="HKLM"
Key="$(var.XWinServiceRegistryKey)"
Name="ServiceName"
Type="string"
Value="[X_WIN_SERVICE_NAME]"
Action="write" />
</Component>
<?endif?>
</Include>
J'ai vérifié mon système après l'installation et la valeur de Registre est correctement écrit. La partie dans mon composant où le service est installé ressemble à:
Des idées?
vous avez raison, ça doit avoir été quelque chose de subtil car après quelques changements sans rapport ça marche à nouveau: S – evilfred