2010-08-27 21 views
1

J'ai des programmes d'installation WIX pour deux services Windows. Les deux sont installés en utilisant les mêmes informations d'identification, mais l'un fonctionne tandis que l'autre échoue avec l'erreur "Service" PCP Event Processor-3.9.9.0-wix '(MyServiceExeName) n'a pas pu être installé. Vérifiez que vous disposez des privilèges suffisants pour installer les services système. . »J'utilise un fichier WXi commun pour les deux projets avec les pouvoirs d'utiliser, de sorte que ce n'est pas un nom de compte ou le nom de domaine AFAICS typo Les seules différences substantielles entre les deux services en cours d'installation sont les suivants:.Deux projets WIX presque identiques - un fonctionne correctement, l'autre échoue avec un problème de sécurité

  • Le défaut projet a un fichier .licx pour le composant 3ème partie.
  • le projet défaillant est un projet winexe. l'installation réussie est une Exe (application de style console)

pour autant que je peux voir, il n'y a pas différence réelle (GUID évidemment différents sont) entre les fichiers wxs pour les deux installateurs.Le composant défaillant a WI X code installateur comme ceci:

<Component Id="cmpMainExe" Guid="{EXCISED-FOR-CUT-N-PASTERS}"> 
    <File Id="filASJHDJSDJSHGDJH" Source="$(var.EventPollingService.TargetDir)\EventPollingService.exe" /> 
    <ServiceInstall Name="$(var.SVCNAME)-$(var.ProductVersion)-$(var.BranchName)" 
        DisplayName="PCP $(var.SVCNAME)-$(var.ProductVersion)-$(var.BranchName)" 
        Type="ownProcess" 
        Interactive="no" 
        Start="auto" 
        Vital="yes" 
        ErrorControl="normal" 
        Description="Manages the state model of a user's session by handling incoming events from the dialler" 
        Account="$(var.ServiceAccountId)" 
        Password="$(var.ServiceAccountPwd)" /> 
    <ServiceControl Id="StartWixServiceInstaller" 
        Name="$(var.SVCNAME)-$(var.ProductVersion)-$(var.BranchName)" 
        Start="install" 
        Wait="yes" /> 
    <ServiceControl Id="StopWixServiceInstaller" 
        Name="$(var.SVCNAME)-$(var.ProductVersion)-$(var.BranchName)" 
        Stop="both" Wait="yes" 
        Remove="uninstall" /> 
</Component> 

J'utilise Wix 3.5 avec Votive dans VS 2010, et les deux projets .NET 3.5 SP1 applications. J'utilise Windows 7, avec UAC éteint.

Des idées?

Répondre

2

Examinez les deux MSI de construction dans ORCA from Windows SDK et vérifiez que les entrées de la table ServiceInstall sont identiques. Toutefois, d'après mon expérience, il ne s'agit probablement pas d'un problème d'installation. C'est généralement un hareng rouge qui pointe vers un problème d'application tel que des dépendances manquantes ou une exception d'application. Après avoir exclu les entrées ServiceInstall et vérifié que les informations d'identification du compte de service sont correctes, le compte n'est pas désactivé et le compte dispose des droits d'ouverture de session en tant que service, puis commence à profiler votre application. C'est plus facile à faire lorsque le programme d'installation est bloqué dans la fenêtre d'erreur.

Deux dernières pensées:

Si un programme a des dépendances sur les winsxs ou GAC il ne fonctionnera pas car ceux-ci ne sont pas installés avant l'exécution Commit qui après avoir essayé de démarrer le service

Si vous devez accorder à l'utilisateur les droits LogonAsService sur l'élément Utilisateur dans WiX.

+0

J'ai ajouté un lien vers ORCA parce que ce n'est pas facile à trouver lorsqu'on le cherche pour la première fois – quetzalcoatl