У нас большой установщик 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 Предварительные условия программы установки не могут быть извлечены и установлены отдельно.У нас нет исходного кода приложения для обновления базы данных.