2010-10-06 17 views
0

J'utilise la fonction de référence de projet de WiX pour récolter un projet automatiquement à l'aide de la fonction Chaleur. Ceci est particulièrement utile puisque le programme d'installation WiX est construit localement et sur un serveur de compilation TFS2010, et quand il est construit sur le serveur de build, la sortie est redirigée vers un autre emplacement, ce qui signifie que si je ne recueille pas automatiquement les projets très désordonné en essayant de référencer l'emplacement correct pour les éléments récemment compilés.Définition d'un chemin d'accès lors de la collecte automatique d'un projet

Je le suivant Wix « code » pour installer et démarrer le service:

<ServiceInstall Id="MyService" 
Type="ownProcess" 
Vital="yes" 
Name="MyServiceName" 
DisplayName="My Service Display Name" 
Description="My Service Description" 
Start="auto" 
Account="[SERVICEACCOUNT]" 
Password="[SERVICEPASSWORD]" 
ErrorControl="ignore" 
Interactive="no" /> 
<ServiceControl Id="StartService" Name="MyServiceName" Start="install" Wait="no" /> 
<ServiceControl Id="StopService" Name="MyServiceName" Stop="both" Wait="yes" Remove="uninstall" /> 

Jusqu'à présent, si bien ... je reçois un problème lorsque le programme d'installation tente d'installer et de démarrer mais les services Windows "Service 'MyServiceName' (MyServiceName) n'a pas pu démarrer.Vérifiez que vous avez suffisamment de privilèges pour démarrer les services système". Si je choisis le bouton "Ignorer", l'installation se termine "avec succès", mais quand je vérifie les services installés sur ma machine, le nouveau service n'est pas listé. De mes enquêtes en ligne, je crois que le problème est que le service n'est pas réellement installé correctement parce que je dois définir le KeyPath à l'exécutable qui devrait être exécuté en tant que service, mais puisque je recueille les fichiers en utilisant la chaleur, je ne peux pas trouver un moyen de le faire ... sauf si je crée une action personnalisée qui va installer le service pour moi en me permettant de spécifier le nom de l'exécutable une fois tous les fichiers installés ... mais ça ne marche pas t semble être la bonne solution ...

Quelqu'un a-t-il un conseil ou a-t-il rencontré le même problème et trouvé une solution?

Merci

MISE À JOUR 07/10/10: Dans mon script Wix, je donne les résultats suivants:

<Directory Id="INSTALLLOCATION" Name="Dolphin Transfer Service Server" ComponentGuidGenerationSeed="AF89976D-CD66-4b94-911B-1D27F969BC14"> 
    <Component Id="ServiceComponent" Guid="F55415F7-803C-4a83-A677-C0F882699374"> 
     <ServiceInstall Id="DolphinTransferService" Type="ownProcess"... 

et le répertoire cible pour mes fichiers récoltés est le répertoire INSTALLLOCATION.

En regardant le msi en utilisant Orca, je peux voir mon ServiceComponent et tous les composants générés pour chaque fichier récolté. En regardant dans la table Fichier, il n'y a pas de fichiers associés à ce composant (puisqu'ils ont un composant généré pour chaque fichier ...). En regardant dans la table ServiceInstall, le composant qu'il essaie d'installer est ServiceComponent.

Je pense que je dois obtenir en quelque sorte l'élément ServiceInstall être à l'intérieur du composant qui est généré pour le service exe afin qu'il installe ce composant en tant que service et non le composant « ServiceComponent » vide? Mais puisque ce composant est généré au moment de la construction par la chaleur, je n'ai pas réussi à progresser ...

Répondre

0

La sortie de chaleur est une création WXS avec un fichier par composant. C'est le comportement par défaut et ne peut pas être changé en utilisant des commutateurs thermiques standard. Cela a été fait pour suivre nativement les règles du composant.

Si un composant contient un seul fichier, ce fichier est automatiquement un chemin de clé. Par conséquent, si vous ne transformez pas la sortie de chaleur et conservez la règle "un composant - un fichier", cela ne doit pas être la raison de l'erreur que vous obtenez.

Je suggère d'étudier le journal détaillé et de voir s'il contient une description plus détaillée de l'échec auquel vous êtes confronté.

+0

Il n'y a rien de notable dans le journal.La section "Action: INSTALL" contient de nombreux messages de type "Mise en cache du produit en contexte ..." puis "Note: 1: 2228 2: 3: Erreur 4: SELECT" Message "FROM" Erreur "WHERE' Error' = 1715 " . Ensuite, il dit qu'il a terminé avec succès ... – VaticanUK