Исключение в Custom Action во время RollBack - PullRequest
3 голосов
/ 03 февраля 2010

В пользовательском действии я перезаписываю следующую функцию и получаю исключение при откате дело ...

"словарь сохраненного состояния не содержат ожидаемые значения и мощь были повреждены. «

Есть ли другой способ отката?

   protected override void OnBeforeInstall(System.Collections.IDictionary savedState)
    {            
        try
        {                

            bool report = false; //Some validation
            if (!report)                
                throw new InstallException("License is not valid.");
            base.OnBeforeInstall(savedState);
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
            base.Rollback(savedState);
        }

    }

Ответы [ 2 ]

1 голос
/ 21 июня 2011

Вы можете использовать pinvoke для вызова кнопки отмены на базовом установщике.Откат произойдет без диалоговых окон с сообщениями об ошибках установки.

1 голос
/ 09 февраля 2011

Измените "base.Rollback ()" в обработчике исключений на "throw;". Ваш абонент позвонит в Rollback в нужное время.

...