2009-01-21 6 views
4

J'ai un MSI pour une application .NET que j'ai créé en utilisant Visual Studio 2005 qui comprend une action personnalisée pour écrire des clés de registre à la fin de l'installation. J'ai trouvé que le programme d'installation fonctionne correctement sur Windows XP SP2 et SP3. Toutefois, lorsque j'essaie d'exécuter le programme d'installation sur un PC Vista, le programme d'installation semble se terminer à la fin, puis il se termine et affiche un code d'erreur 2869.MSI code d'erreur 2869 sur Vista

Je me suis connecté avec un compte est un administrateur, mais j'ai toujours la même erreur.

Répondre

3

J'ai trouvé la réponse définitive à ce problème. Erreur 2869 est une erreur sans signification qui signifie "Impossible d'afficher l'erreur pour le vrai problème". La vraie erreur est obscurcie. Dans de nombreux cas, cette erreur est liée à l'usurpation d'identité, mais pas toujours!

Cette solution à la fois fixe l'affichage d'erreur bug, et fixe aussi le Impersonation/Administrateur problème PRIV sur Vista et Windows 7.

La seule chose qui manque est la tenue à la main (pour quelqu'un qui ne voulez savoir quelque chose sur javascript, comme moi) pour que cela fonctionne.

  1. visite http://blogs.msdn.com/b/nikhiln/archive/2007/04/25/post-build-script-to-fix-msi-issues-in-vista-for-vs-2005-setup-and-deployment-project.aspx

  2. Prenez le script et enregistrez-le dans votre dossier de projet de déploiement comme PostBuildVistaFix.js

  3. afficher les propriétés du projet de déploiement
  4. Changé PostBuildEvent à

    cscript.exe ..\PostBuildVistaFix.js your_installer.msi

+0

btw, ce script est utile pour ajouter à tous vos projets VS2005, au cas où il y aurait une autre erreur aléatoire qui pourrait surgir. –

2

Ok, j'ai trouvé une solution à mon problème:

Si je me connecte en tant qu'utilisateur administrateur et au lieu de à diriger mon installation en double cliquant sur le msi ou setup.exe, si je faites un clic droit et sélectionnez " Exécuter en tant qu'administrateur "mon programme s'installe avec succès.

On dirait que cela a à voir avec le fait que UAC a été activé sur la machine. Je l'ai essayé sur une machine Vista avec UAC éteint et le programme d'installation fonctionnait très bien lorsqu'il est exécuté normalement par un utilisateur Admin.

Une approche rapide et sale similaire à la fixation de ce se trouve here

1

La solution que je suis venu avec est de distribuer aux clients un EXE avec un manifeste configuré pour déclencher l'élévation UAC au début de l'installation, plutôt que d'un MSI (notre application doit être installée par machine de toute façon)

1

Le problème est lié au fait que Vista applique le bit NoImpersonate sur les actions personnalisées. Cela a été précédemment ignoré par XP.

Vous ne pouvez pas définir le bit dans Visual Studio 2005, mais here est un processus à exécuter pour le faire fonctionner.

0

Calling

msiexec /a "path-to-package.msi" 

m'a aidé.

Questions connexes