2010-03-08 2 views
0

Je tente d'installer un service Windows à l'aide de MSBuild et de CCNET. J'utilise MSBuild Extension pack WindowsService tâche pour installer et démarrer le service Windows dans le cadre de la génération automatique. La section de script ressemble à ceciProblème lors de l'installation du service Windows à l'aide de CC.NET et de MSBUILD

<!--install service--> 
<MSBuild.ExtensionPack.Computer.WindowsService TaskAction="Install" ServiceName="$(PrServiceName)" ServicePath="$(PrServicePath)" User="$(User)" /> 

<!--set service to run automatically on restart--> 
<MSBuild.ExtensionPack.Computer.WindowsService TaskAction="SetAutomatic" ServiceName="$(PrServiceName)" /> 

<!--start service--> 
<MSBuild.ExtensionPack.Computer.WindowsService TaskAction="Start" ServiceName="$(PrServiceName)" ServicePath="$(PrServicePath)" User="$(User)" /> 

Maintenant, dès que la première tâche est exécutée pour installer le service, il échoue avec l'erreur suivante

E: \ Data \ cc_temp \ Projects \ cube \ intranet \ pr \ pr.build (137,3): erreur: Service d'installation a échoué avec le code: 'AccessDenied'

Je suppose que c'est parce que le script s'exécute sous le compte d'utilisateur du service de contrôle de croisière qui ne dispose pas des autorisations appropriées pour l'installation un service Windows. Je voudrais juste donner des autorisations minimales au compte d'utilisateur de contrôle de croisière au lieu de donner les pleins droits administratifs.

Est-ce que quelqu'un sait comment je peux y arriver?

En attente Nabeel

Répondre

0

Nabeel vous êtes sur la bonne voie, il doit être un problème d'autorisations. Nous faisons cela tout le temps dans notre construction en utilisant les mêmes outils et cela fonctionne. Avez-vous vérifié pour voir quel compte le service fonctionne en tant que? et en utilisant le même compte d'utilisateur pour faire fonctionner votre cruisecontrol? Au moins, vous pourriez prouver/réfuter le problème des autorisations.

+0

Salut Alex, J'utilisais acatulaly un chemin pour la propriété * ServicePath * dans les tâches. Après l'avoir changé en chemin absolu, tout semble fonctionner correctement. – nabeelfarid

Questions connexes