Установщик WIX не запускает процесс C # должным образом - PullRequest
0 голосов
/ 27 февраля 2019

У нас большой установщик WIX.После установки необходимо выполнить около 2800 сценариев для обновления базы данных.Для этого создается специальное приложение.Он просто отправляется на компьютер SQL, устанавливает необходимые компоненты, такие как SQL SMO и типы SQL Sys Clr, и выполняет сценарии.Это небольшое приложение запускается в пользовательских действиях в WIX.По логике, его следует запускать с повышенными привилегиями.В этом настраиваемом действии я использую процессы c # для запуска приложения.Тем не менее, я попробовал все, и приложение по-прежнему не работает должным образом.Он открывает приложение, и приложение пытается установить необходимые компоненты и просто завершает работу - ничего не устанавливается.Что я пробовал: 1. Запуск процесса с повышенными привилегиями (process.StartInfo.UseShellExecute = true) 2. Запуск процесса с привилегиями пользователя (standardinput / output с UseShellExecute = false) 3. Запуск приложения с командным файлом.

Общий процесс должен быть следующим: Установщик запускается с повышенными привилегиями -> После установки запускается специальное приложение для обновления базы данных -> Приложение устанавливает необходимые условия -> Приложение выполняет сценарии.

ИнтересноеЧасть в том, что приложение работает правильно, когда я делаю это вручную с помощью cmd.Однако, когда пользовательское действие установщика открывает cmd.exe (процесс c #), и оно все еще ожидает, то открытие приложения вручную через cmd не работает.Другими словами, у меня есть cmd (с повышенными правами), открытый установщиком, и другой cmd, открытый мной вручную.Тогда ручной запуск приложения не работает.Как только я закрываю cmd, открытый установщиком, и вручную запускаю приложение через cmd, которое я открыл сам, тогда снова все в порядке, все работает.

Мне нужна помощь, как я могу это исправить?

PS Предварительные условия программы установки не могут быть извлечены и установлены отдельно.У нас нет исходного кода приложения для обновления базы данных.

1 Ответ

0 голосов
/ 08 апреля 2019

После некоторых исследований я обнаружил, что Windows не может запустить два MSI одновременно, и поэтому второй MSI молча завершал работу.

...