Пользовательские действия условий запуска MSI
Мне удалось запустить настраиваемые действия C#, чтобы переопределить этапы установки и фиксации MSI. Однако при развертывании приложения ASP.NET я хочу иметь возможность выполнять проверки еще до начала установки.
Я знаю, что есть условия запуска, однако я хотел бы иметь возможность подключить сюда свой собственный код, чтобы самостоятельно обрабатывать проверки при запуске, поскольку, судя по тому, что я вижу, условия запуска предназначены просто для проверки правильных версий IIS и т. Д.?
Может ли кто-нибудь указать мне в правильном направлении здесь, или даже если есть способ заставить условия запуска запускать какой-нибудь C#?
Ответов (2)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.