0

J'utilise le programme d'installation de Visual Studio 2013 pour empaqueter mon application. Je fais ensuite une copie du MSI, l'ouvre dans Orca et supprime toutes les boîtes de dialogue pour créer un paquet silencieux. J'ai donc deux MSI qui devraient être les mêmes, sauf que l'un est silencieux et l'autre non.Plusieurs entrées dans Ajout/Suppression de programmes de mon application

Lorsque je fais la mise à niveau à partir d'une version précédente (construite de la même manière) en utilisant le paquet non-silencieux, tout fonctionne parfaitement.

Cependant quand je mise à niveau d'une version précédente en utilisant le paquet silencieux, tout fonctionne à part qu'il me reste 2 entrées dans Ajout/Suppression de programmes. Tout cela fonctionne mais semble moche pour le client. Lorsque je désinstalle la dernière version, Ajouter des programmes a toujours la version précédente répertoriée dans Ajout/Suppression de programmes bien que la dernière version soit toujours installée. Comme je l'ai dit, le paquet non-silencieux fonctionne parfaitement bien, ce qui m'amène à penser que tout doit être correctement configuré dans Visual Studio et qu'Orca doit faire quelque chose que je n'avais pas prévu.

Toute aide serait grandement appréciée.

Répondre

0

Si vous avez deux entrées dans Ajout/Suppression de programmes, la mise à niveau n'a pas fonctionné. Une raison courante est que l'une des installations est Tout le monde et l'autre est Juste moi. Si vous supprimez les boîtes de dialogue, vous avez modifié le comportement qui définit la propriété ALLUSERS, et votre mise à niveau pourrait par défaut être Just me. En l'absence d'une décision d'utiliser l'un de ces choix VS configurations utilisent ALLUSERS = 2 qui est par défaut à un utilisateur par moi-même Installez-moi, c'est la raison probable. L'élévation est également impliquée - les configurations de VS préféreraient que votre MSI réussisse à Juste moi au lieu de tout le monde défaillant si l'état de privilège n'est pas clair (et dans les configurations MSI cela ne l'est souvent pas).

Vous devrez peut-être accéder à la table de propriétés et définir FolderForm_AllUsers sur "ALL" et ALLUSERS sur 1 pour forcer un par ordinateur Tout le monde à installer.

Comment voulez-vous que ce soit? Si l'installation de l'élévation est nécessaire, vous devez afficher la boîte de dialogue d'élévation ou l'installation échouera silencieusement si vous forcez une machine à installer tout le monde.