2010-12-08 9 views
0

Die benutzerdefinierte Benutzeroberfläche ruft einen Webdienst auf. Wenn der Web-Service die Installation genehmigt, wird dem Benutzer weiterhin eine Meldung angezeigt, dass das Setup nicht fortgesetzt werden kann.C# msi setup - Benutzerdefinierte Validierung vor der Installation

Verwenden von Visual Studio-Setup- und Bereitstellungsprojekten. Es wurde versucht, eine benutzerdefinierte Aktion hinzuzufügen, sie wird jedoch immer nach dem Installationsprozess ausgeführt.

Wie soll ich darüber gehen.

+0

Sie können dies nicht tun, ohne Ihre MSI in ORCA zu ändern und den Aufruf an benutzerdefinierte Aktion zu verschieben, bevor Sie Dateien kopieren ... irgendwie. Um ehrlich zu sein, ist dies einer der vielen Gründe, warum ich mich von den Bereitstellungsprojekten in VS fern halte. Es funktioniert nur in trivialen Fällen. –

+0

VS-Setup-Projekte sind sehr begrenzt in dem, was sie tun können. Viele Entwicklungsteams betrachten häufig andere Installationslösungen wie installshield. – jlafay

Antwort

1

Ich vermute, der Web-Service überprüft den Lizenzschlüssel während der Installation eingegeben. Können Sie die Schlüsselüberprüfung durchführen, wenn das Programm zum ersten Mal ausgeführt wird? Es könnte Ihnen einige Kopfschmerzen ersparen.

Wenn dies nicht möglich ist, sehen Sie sich das BeforeInstall-Ereignis der Installer-Klasse an. Dies wird ausgeführt, nachdem alle Informationen gesammelt wurden, aber bevor die eigentliche Installation beginnt. der perfekte Ort für Code, der vor dem Kopieren von Dateien ausgeführt werden muss. Wenn Sie diese Dateien oder ein anderes Setup benötigen, um den Webservice aufzurufen, versuchen Sie es mit BeforeCommit (wodurch Sie die Installation bei fehlgeschlagener Validierung immer noch rückgängig machen können).

+0

Nun, FirstRuns sind ziemlich schwer zu programmieren. Ich möchte von der Registrierung fern bleiben und Konfigurationsdateien können leicht geändert werden. –

Verwandte Themen