Невозможно автоматически запустить программу после установки с помощью программы установки.
Мне нужна помощь с установщиком. У меня есть проект инсталлятора, устанавливающий мою программу (очевидно), и мой начальник хочет, чтобы я автоматически запустил ее после завершения установки. Я не могу найти способ сделать это. Возможно ли это сделать?
2 ответа
Да, очень легко запустить автоматический установщик и запустить приложение в конце установки.
Для запуска установки вам нужно установить автозапуск на одном CD / DVD. Вам нужно только добавить текстовый файл autorun.inf, используя формат ini. Ниже приведен пример, предполагающий, что у вас есть файл setup.exe со значком.
[autorun]
open=setup.exe
icon=setup.exe,0
label=My install CD
Вы можете изменить раздел значков на любой значок, например, "icon = my_cool_icon.ico". Если в вашем exe-файле есть 3 значка, вы можете выбрать 2-е с помощью "setup.exe,1", а последнее - с "setup.exe,2", поскольку счетчик равен нулю.
Больше информации в Википедии
Чтобы запустить приложение в конце установщика, вам нужно
- Щелкните правой кнопкой мыши по вашему проекту установки, выберите "Пользовательские действия". Затем щелкните правой кнопкой мыши на Commit, Add Custom Action и выберите файл, который вы хотите запустить. (Обратите внимание, что он уже должен находиться в папке вашего приложения, что не должно быть проблемой в вашем случае, так как вы все равно запускаете свою программу. Просто выберите вывод вашего проекта.
- Затем нажмите на этот добавленный.exe и измените InstallerClass на false. Это очень важно, потому что в противном случае он будет искать программу установки. Вы даже можете передать параметры в ваш.exe, добавив их в свойство Arguments
Вы должны увидеть, хотите ли вы, чтобы ваше приложение запускалось с повышенными или обычными разрешениями пользователя. Одна хорошая статья - запуск MSDN как пользователь из UAC.
Пожалуйста, проверьте приложение запуска вопросов стека, установщик Microsoft или запустите exe после установки msi (Visual Studio 2008)
В проекте установки VS 2015 (расширение установщика) есть пользовательские действия. Вы выбираете проект установки в Обозревателе решений, затем делаете Вид-> Редактор-> Пользовательские действия, и вы хотите установить пользовательское действие. По умолчанию настраиваемые действия будут останавливать установку до завершения, поэтому в основном вам нужно настраиваемое действие, которое запускает оболочку программы (так что она запускается асинхронно, запускается и забывается).
Это должно помочь с пользовательскими действиями в целом:
https://www.simple-talk.com/dotnet/visual-studio/visual-studio-setup-projects-and-custom-actions/
Однако это почти наверняка не будет работать правильно, потому что, как говорит Дэмиен, при установке "Все" настраиваемое действие и его потомки будут выполняться с повышенным И с системной учетной записью, и программа не будет вести себя так, как если бы она была запущена интерактивным пользователем. Лучшее, что вы можете сделать, - это отредактировать файл MSI с помощью такого инструмента, как Orca, найти свое настраиваемое действие в таблице CustomAction и отключить бит msidbCustomActionTypeNoImpersonate, чтобы настраиваемое действие выполнялось под именем пользователя, выполняющего установку. Это в столбце Тип.
https://msdn.microsoft.com/en-us/library/windows/desktop/aa368069(v=vs.85).aspx
Все это, как правило, плохая идея, поскольку настройки Visual Studio не имеют доступа ко всему спектру функций установщика Windows и не позволяют перемещать настраиваемые действия, чтобы они выполнялись с автоматически устанавливаемыми учетными данными пользователя. Основная проблема заключается в том, что программы, инициированные из процесса msiexec.exe, работающего с системной учетной записью (и, возможно, с повышенными правами), не ведут себя так же, как если бы они были инициированы интерактивным пользователем с помощью ярлыка, и трудно имитировать такое поведение ярлыка из контекста установщика.