WiX 3.0 déclenche une erreur 217, tout en étant exécuté par l'intégration continue
C'est l'erreur qui est générée par notre système automatisé suite sur Windows 2008, lors de l'exécution de ICEs (après la migration de WiX 2.0 pour WiX 3.0):
LGHT0217: Erreur lors de l'exécution de la GLACE de l'action "ICE01'. La cause la plus fréquente de ce type de GLACE de l'échec est un incorrectement enregistré le moteur de script. Voir http://wix.sourceforge.net/faq.html#Error217 pour plus de détails et comment résoudre ce problème. La chaîne de caractères de format n'était pas prévu par l'externe de l'INTERFACE utilisateur enregistreur de message: "Le Service Windows Installer n'a pas pu être consulté. Cela peut se produire si le programme d'installation de Windows n'est pas installé correctement. Contactez votre support technique pour assistance.". dans light.exe(0, 0)
En outre, ce sont les erreurs qui s'affichent dans le journal des événements:
MSIInstaller: impossible de se connecter au serveur. Erreur: 0 x 80070005
Produit: [ProductName] -- Erreur 1719. Le Service Windows Installer n'a pas pu être consulté. Cela peut se produire si le programme d'installation de Windows n'est pas installé correctement. Contactez votre support technique pour assistance.
Intuitivement:
- VBScript et JScript ont été enregistrés en vertu de l'admin.
- Service de l'intégration a les autorisations pour l'interaction avec le bureau et tous les fichiers
- Construit réussir, lorsqu'il est exécuté manuellement sur la même machine par un autre utilisateur ou même de l'utilisateur connecté en tant qu'intégration de compte (via RDP)
Je suis d'idées si loin.
Comment puis-je résoudre ce problème tout en gardant la GLACE de validation?
- Grande que la FAQ url dans la errormessage est cassé...
Vous devez vous connecter pour publier un commentaire.
Fin de l'histoire:
Après jongler avec les autorisations de l'intégration de compte, DCOM, l'activation du service, etc. sans un peu de chance, j'ai finalement simplement désactivé la GLACE de validation dans la version d'intégration continue, tout en restant dans la construction locale.
Pour désactiver la GLACE de validation vous pouvez définir SuppressValidation à vrai dans l' .wixproj fichier:
Ou passer la
-sval
option de ligne de commande pourlight.exe
.Ajoutant le build TFS compte de contrôleur de groupe admin local et de redémarrer le service windows a fait le travail pour moi.
J'ai trouvé la cause. J'ai essayé tout ce que j'ai trouvé, y compris validateur personnalisé extension similaire à un posté dans Re: [WiX-users] light.exe a échoué de façon aléatoire lors de l'exécution de l'ICEs..
Ce n'est pas un problème de concurrence comme suggéré dans plusieurs threads. Elle est causée par un trop grand nombre de Processus de Bloc d'Environnement (PEB).
Il s'avère que le programme d'installation de Windows ne peut pas gérer un environnement de processus de bloc de plus de 32 ko. Dans mon environnement, en raison du nombre de variables définies par le système de compilation et de leur taille (par exemple, Variable de CHEMIN d'accès contenant plusieurs valeurs dupliquées), PEB était d'environ 34 ko.
Il est intéressant de noter, par Les Variables D'Environnement, Windows XP et 2003, ont eu une dure limite de PEB de 32 kilo-octets. Ce serait sans doute provoquer un facile à attraper construire pause dans une phase antérieure de la construction. Plus récente de Windows n'a pas de limite, mais je suppose que le programme d'installation de Windows développeurs limitée de leur environnement interne tampons à 32 ko et ne parviennent pas normalement lorsque la valeur est dépassée.
Le problème peut être facilement reproduit:
set Variable<number>=<text longer than 1024 characters>
smoke.exe
pour valider votre colis OUmsiexec /i Package.msi
Error 1719 - Windows Installer could not be accessed
.Donc, la solution est - réviser vos scripts de construction et de réduire le nombre et la taille des variables d'environnement afin qu'ils appartiennent tous à 32 ko. Vous pouvez facilement vérifier les résultats en cours d'exécution:
L'objectif est d'obtenir un fichier
environment.txt
plus petit que ~30 ko.La description correcte (sans trouver de solution, sauf si l'ajout de la CruiseControl compte dans le groupe administrateurs local peut passer en tant que solution) du problème:
Citation de Wix 3.5 & régulateur de vitesse donne errorLGHT0217:
GLACE besoins en matière de validation d'un compte interactif ou des privilèges d'administrateur pour
heureux. Voir, par exemple, WiX Projets vs Team Build TFS 2010 (2009-11-14) ou Re: [WiX-utilisateurs] Aider à la construction de patch (2009-11-20).
imagi est totalement raison! Je ne pouvais pas croire que c'est la vraie réponse. Supressing de validation et de prise de TFS utilisateur de l'Administrateur ne sont pas de bonnes solutions. En Plus je ne pouvais pas trouver NT\Autorité pour l'ajouter au groupe Administrateurs et a été totalement coincé dans cette.
J'ai eu le même message d'erreur sur Windows Server 2012 Datacenter Agent de Build.
Pour résoudre le problème :
"PF86"
qui est égal à"C:\Program Files (x86)"
"PF"
qui est égal à"C:\Program Files"
"C:\Program Files (x86)"
avec%PF86%
et tous les"C:\Program Files"
avec%PF%
De http://wix.sourceforge.net/faq.html#Error217:
Je commençais à même la GLACE d'erreur, mais le problème s'est avéré être corrompu au Service Windows Installer.
Cette solution a fonctionné pour moi:
http://support.microsoft.com/kb/315353
Vérifiez également que le SYSTÈME de compte a le plein contrôle des autorisations d'accès à la
HKEY_CLASSES_ROOT ruche dans le registre Windows. Dans certains cas, vous pouvez également ajouter des comptes d'Administrateur.
J'ai quelques suggestions.
J'ai connu le même problème et n'a pas à supprimer de la GLACE de validation. Ma configuration: j'ai utilisé mon propre ordinateur en tant qu'agent de build sur Visual Studio Online (VSO). Ma solution a été de changer le compte utilisé pour exécuter le service sur ma machine. Au lieu d'utiliser le Réseau de Service ou de Service Local, j'ai simplement fait le service connectez-vous avec mon propre compte, et qui avaient tous les droits nécessaires.
Aller à votre machine de compilation et de redémarrer le service Windows Installer
Aucune des suggestions ci-dessus a fonctionné pour moi, pour moi l'anti-virus (mcafee) est entré dans l'image et dirait qu'il a mis à jour le vbscript.dll l'entrée de registre DLL tort emplacement. Ce sont les choses à garder à l'esprit:
Voici les étapes que j'ai pris pour résoudre le problème:
Une fois que j'ai mis à jour le chemin d'accès, tout a commencé à travailler comme d'habitude.