2016-05-13 3 views
0

Ich entwickle eine Windows-Anwendung (mit vb.net), die verschiedene Versionen von Laufzeiten wie VC++, Direct X, .net Frameworks usw. installieren kann ein PC. Mein Programm muss in der Lage sein, die Laufzeit-Installer (msi & exe) nacheinander im Hintergrund auszuführen und folgendes zu tun:Wie man Installationsfortschritt und Rückgabewert von einem Installer in vb.net abfängt

1. Überprüfen Sie, ob die Runtime bereits (vorher) installiert ist oder nicht.
2. Zeigen Sie den Installationsfortschritt in einer Fortschrittsleiste in der Hauptform meines Programms an.
3. Und zuletzt erhalten Sie den Rückkehrcode (Exit-Code) vom Installationsprogramm, um anzuzeigen, dass die Installation erfolgreich war oder nicht.

Welche Codes sind zur Ausführung der oben genannten Aufgaben erforderlich?

Ich möchte auch wissen, was sind die möglichen Rückkehrcodes (Werte), die ein Installer zurückgeben kann.

Antwort

2

Alle diese Redistributables haben möglicherweise andere Befehlszeilenoptionen, daher ist es wahrscheinlich nicht eine einzige Antwort für alles.

Es ist nicht klar, wie Sie den Installationsfortschritt erhalten können. Es ist fast unmöglich oder sehr schwierig. Sie fragen, wie Sie ein Programm ausführen können, das die Ausgabe eines anderen Programms stehlen wird, und in vielen Fällen wird das Windows Installer sein. Wenn ich ein Programm hatte, das ein Windows Form-Programm abfeuert, dann fragen Sie: "Wie kann ich den Inhalt dieses Programms bekommen und die ausgegebenen Nachrichten stehlen?" Das ist keine Installationsfrage, es ist eine Windows Messaging/Windows-Nachricht Loop-Frage.

Die von diesen Setups verwendeten Erkennungsmethoden werden intern codiert (oder als interne Daten konfiguriert). Sie fragen also, wie der Code in all diesen Programmen erkennt, dass die Abhängigkeit nicht installiert ist (unter mehreren Betriebssystemversionen und 32 -Bit und 64-Bit), und einige davon sind möglicherweise im Web verfügbar, aber es ist unwahrscheinlich, dass sie für jede weitervertreibbare Datei verfügbar sind.

Möglicherweise haben Sie auch ein Problem mit EULAs. Einige Redistributables benötigen eine EULA, die akzeptiert werden muss. Sie wird möglicherweise nur dann installiert, wenn sie akzeptiert wird, oder einige haben möglicherweise eine Befehlszeilenoption, die etwas wie (nur ein Beispiel) ACCEPTEULA = 1 enthält.

Grundsätzlich sollte man:

  1. die Befehlszeilenoptionen alle verfügbaren finden für jene redistributables zu sehen, ob sie über eine Option, die nur Fortschritt anzeigt, dann lassen Sie sie, dass zeigen.

  2. In ähnlicher Weise, ob sie Dokumentation haben, die Ihnen sagt, ob der Exit-Code Erfolg bedeutet oder nicht.

  3. Versuchen Sie nicht, alle Erkennungsmethoden für alles zu finden - führen Sie einfach die Redist, und wenn das Ziel bereits installiert ist, wird es nichts tun.

Schließlich erfinden Sie das Rad neu. WiX, der Bootstrap Manifest Generator, InstallShield, Advanced Installer (usw.) bieten Bootstrapper-Programme, die dies bereits als Voraussetzung für die Installation von Software machen. Niemand schreibt Code, um dies zu tun, weil es Lösungen gibt.

Verwandte Themen