2016-05-13 5 views
0

Je développe une application Windows (en utilisant vb.net) qui peut installer différentes versions de runtimes comme vC++, Direct X, .net frameworks etc. un PC. Mon programme doit pouvoir exécuter les programmes d'installation (msi & exe) un à la fois en arrière-plan et procédez comme suit:comment intercepter la progression de l'installation et la valeur de retour d'un installateur dans vb.net

1.Vérifier si le moteur d'exécution est déjà installé (ou non).
2.Show la progression de l'installation dans une barre de progression dans la forme principale de mon programme.
3.Et enfin obtenir le code de retour (code de sortie) de l'installateur pour indiquer si l'installation a réussi ou non.

Quels sont les codes requis pour effectuer les tâches ci-dessus?

Aussi je veux savoir quels sont tous les codes de retour possibles (valeurs) qu'un installateur peut retourner.

Répondre

2

Tous ces redistribuables peuvent avoir des options de ligne de commande différentes, il est donc peu probable que ce soit une réponse à tout.

Il n'est pas clair comment vous pouvez faire progresser l'installation. C'est presque certainement impossible ou très difficile. Vous demandez comment vous pouvez exécuter un programme qui va "voler" la sortie d'un autre programme, et dans de nombreux cas, ce sera Windows Installer. Si j'avais un programme qui a déclenché un programme Windows Form, alors vous demandez "comment puis-je obtenir le contenu de ce programme et voler les messages de sortie". Ce n'est pas une question d'installation, c'est une question de messagerie Windows/message de Windows. Les méthodes de détection utilisées par ces configurations sont codées en interne (ou configurées en tant que données internes). Vous demandez également comment le code de tous ces programmes détecte que la dépendance n'est pas installée (sur plusieurs versions d'OS et 32 -bit et 64-bit), et certains d'entre eux pourraient être disponibles sur le Web, mais il est peu probable qu'il soit facilement disponible pour chaque redistribuable.

Vous pouvez également rencontrer un problème avec les CLUF. Certains redistribuables ont besoin d'un CLUF pour être accepté et ne pas s'installer à moins qu'il ne soit accepté, ou certains peuvent avoir une option de ligne de commande qui inclut quelque chose comme (juste un exemple) ACCEPTEULA = 1.

Fondamentalement, vous devriez:

  1. Trouver les options de ligne de commande disponibles pour tous les redistribuables pour voir si elles ont une option qui affiche uniquement les progrès, puis nous montrent que.

  2. De même, vérifiez s'ils ont une documentation qui vous indique si le code de sortie signifie la réussite ou non. Ne vous embêtez pas à essayer de trouver toutes les méthodes de détection pour tout. Il suffit d'exécuter la redist, et si la cible est déjà installée, elle ne fera rien.

Enfin, vous réinventer la roue. WiX, le générateur de manifeste Bootstrap, InstallShield, le programme d'installation avancé (et ainsi de suite) fournissent tous des programmes d'amorçage qui le font déjà en tant que conditions préalables à l'installation d'un logiciel. Personne n'écrit de code pour le faire car il existe des solutions existantes.