1

J'ai un projet d'installation de Visual Studio qui est très basique à l'exception d'une modification. J'ai deux bibliothèques différentes que je voudrais installer en fonction de la sélection de l'utilisateur. J'ai ajouté un écran et des conditions de checkbox aux dossiers. Ils peuvent installer un composant ou les deux composants. Tout cela fonctionne très bien.Personnalisation Option de réparation dans MSI

Maintenant pour mon exigence. Disons que l'utilisateur a installé le MSI et sélectionné un seul composant. Maintenant, ils doivent installer le second composant à partir du même MSI. Si elles exécutent à nouveau le MSI, j'ai l'option de réparer ou de supprimer. La réparation ne réparera que le composant installé à l'origine. Comment puis-je leur donner l'option d'installer les autres composants en affichant à nouveau l'écran de case à cocher?

Si cette fonctionnalité n'est pas disponible dans un projet VS Setup, y a-t-il autre chose? WiX peut-être?

Répondre

1

Je ne pense pas que les projets VS Setup supportent cela. Wix ou MSI créés à partir d'autres outils comme Installshield peuvent supporter cela. La manière habituelle de gérer cela serait de créer des fonctionnalités séparées et d'affecter les différents composants à chaque fonctionnalité. Ensuite, si le MSI est construit en utilisant WiX ou un autre outil, à partir de l'ajout/suppression, il y aura le bouton/option Modifier à travers lequel vous pouvez obtenir l'option de réparer, modifier ou désinstaller. Modifier vous permet ensuite de modifier vos sélections de fonctionnalités sans réinstaller.

+0

C'est ce que j'ai pensé. Je savais que le projet d'installation de Visual Studio était très limité dans ses fonctionnalités. – Web

1

Vous devez utiliser les éditeurs MSI gratuits comme ORCA ou SuperORCA. Microsoft utilise pour fournir l'outil ORCA dans leur service pack. Je ne sais pas s'ils continuent ainsi. SuperORCA outil que vous pouvez trouver au http://www.pantaray.com/msi_super_orca.html. Maintenant, quand j'avais une tâche similaire à accomplir était mon approche. J'ai utilisé SuperOrca pour ouvrir mon fichier MSI. 1] Sur la réparation/retirer l 'écran de dialogue MSI, ajouter un bouton radio pour "Modifier" - Dans SuperOrca -> sous la table RadioButton -> Ajouter entrée Modifier radioButton

2] Renommer le texte de BackButton à "réinstaller" de son original "Retour" -> Dans SuperOrca -> sous Control table -> changer la propriété Text à renommer Retour à Réinstaller

3] Lors de la sélection du bouton radio Repair/Remove, activez le bouton Terminer et désactivez le bouton Réinstaller. En sélectionnant le bouton radio, activez le bouton Réinstaller et désactivez le bouton Terminer - Dans SuperOrca -> Sous Tableau ControlCondition -> ajoutez des entrées pour activer/désactiver les boutons "Réinstaller" et "Terminer" pour chaque comibination pour l'écran de réparation/suppression (Dans mon 4] Maintenant, à partir de SuperOrca, les outils ControlEvent table trouver le nom de conrol pour BackButton, Dans mon cas, c'est "PreviousButton". Maintenant, modifiez son événement, Argument & Entrées de condition de la table. Et les valeurs de ces propriétés doivent être les mêmes pour les propriétés du bouton "Suivant" à partir de l'écran de bienvenue du fichier MSI qui redirige l'utilisateur pour afficher les options d'installation à choisir.

Note: Cela fonctionne très bien pour moi. Mais lorsque vous re-sélectionnez les options d'installation à nouveau et cliquez sur Suivant, d'une certaine manière, il n'est pas forcé d'installer l'option sélectionnée. Au lieu de cela, il répare le MSI. J'ai essayé de supprimer des entrées du dossier de Windows \ Installer afin que MSI ne choisisse pas la version installée encaissée mais aucune chance. Si quelqu'un a une réponse sur la façon de forcer MSI à ré-installer via l'assistant de configuration MSI s'il vous plaît faites le moi savoir.