Пользовательские действия условий запуска MSI

Мне удалось запустить настраиваемые действия C#, чтобы переопределить этапы установки и фиксации MSI. Однако при развертывании приложения ASP.NET я хочу иметь возможность выполнять проверки еще до начала установки.

Я знаю, что есть условия запуска, однако я хотел бы иметь возможность подключить сюда свой собственный код, чтобы самостоятельно обрабатывать проверки при запуске, поскольку, судя по тому, что я вижу, условия запуска предназначены просто для проверки правильных версий IIS и т. Д.?

Может ли кто-нибудь указать мне в правильном направлении здесь, или даже если есть способ заставить условия запуска запускать какой-нибудь C#?

Ответов (2)

Решение

Я думаю, что использование настраиваемого действия для установки значения свойства и последующий запуск условия запуска для проверки значения свойства было бы одним из способов. Однако это, похоже, не относится к проектам установки VS, поскольку настраиваемые действия не запускаются до тех пор, пока не будут выполнены условия запуска. WiX обеспечит больший контроль и позволит выполнять настраиваемые действия раньше.

Грубым способом сделать это было бы, чтобы настраиваемое действие генерировало исключение и откатывало установку, но это было бы уродливым взломом.

Я нашел ветку форума, в которой обсуждают, как проверить, работает ли определенная служба при установке, что, возможно, может привести вас в правильном направлении.

Просто запланируйте свое настраиваемое действие сразу после LaunchConditions. Результат одинаков для всех намерений и целей.

В InstallShield это просто вопрос выбора, когда он запускается через раскрывающиеся меню. Или с помощью WiX, это будет примерно так:

  <Custom Action="BlahBlahBlah" After="LaunchConditions">1</Custom>

Как всегда, всем, кто только начинает работать с MSI, я рекомендую прочитать The Definitive Guide to Windows Installer . Он предоставляет бесценные низкоуровневые знания (с использованием проектов установки Visual Studio и Orca), которые применимы независимо от того, используете ли вы WiX, InstallShield или любой другой инструмент для создания файлов MSI.