Laden...

Setup freezed bei InstallException

Erstellt von caldicot vor 12 Jahren Letzter Beitrag vor 12 Jahren 664 Views
C
caldicot Themenstarter:in
51 Beiträge seit 2010
vor 12 Jahren
Setup freezed bei InstallException

Hi,

ich habe eine Bibliothek geschrieben zur Lizenzierung.
Bei der Installation soll ein Eintrag in der Registry statt finden und ein Lizenzfile angelegt werden.
Das klappt auch wunderbar.

Mein Problem betrifft das ErrorHandling.
Sollte z.B. das Schreiben in die Registry fehlschlagen, dann macht das Setup nicht mehr weiter, zeigt aber auch keinerlei Fehlermeldung an.

Hier ein Codeausschnitt:
(Die Methode ist gekürzt. Es finden zusätzlich ähnliche Überprüfungen statt, die als Beispiel ohne Relevanz sind. Variablen wie file oder regPath existieren. Es geht lediglich um die Fehlermeldung, die trotz der InstallException nicht angezeigt werden.)


 public override void Install(IDictionary stateSaver)
        {
            base.Install(stateSaver);

            try
            {
                string file = this.Context.Parameters["FilePath"];
                if (string.IsNullOrEmpty(file))
                    throw new ArgumentException();

                RegistryKey reg = Registry.LocalMachine.CreateSubKey(regPath, RegistryKeyPermissionCheck.ReadWriteSubTree);
                if (reg == null)
                    throw new AuthenticationException("user has no admin rights"); 
            }
            catch (ArgumentException)
            {
                throw new InstallException("Fehler.");
            }
            catch (AuthenticationException)
            {
                throw new InstallException("Rechte.");
            }
            catch(Exception ex)
            {
                throw new InstallException(ex.Message);
            }
        }

Ich bin nach dem Beispiel in InstallException Class vorgegangen.
Wenn aber eine Ausnahme auftritt, dann macht der Installer nichts mehr, der Fortschnitt bleibt unverändert und es kommt keine Fehlermeldung.

Wisst Ihr vielleicht was ich hier falsch mache?
Ich sehe keinen Unterschied zum Beispiel von MSDN.

Ich habe zu Testzwecken auch direkt als erste Anweisung der Install()-Methode eine InstallException geworfen, allerdings mit dem selben Ergebnis.

Danke
caldicot