Невозможно автоматически запустить программу после установки с помощью программы установки.

Мне нужна помощь с установщиком. У меня есть проект инсталлятора, устанавливающий мою программу (очевидно), и мой начальник хочет, чтобы я автоматически запустил ее после завершения установки. Я не могу найти способ сделать это. Возможно ли это сделать?

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", поскольку счетчик равен нулю.

Больше информации в Википедии

Чтобы запустить приложение в конце установщика, вам нужно

  1. Щелкните правой кнопкой мыши по вашему проекту установки, выберите "Пользовательские действия". Затем щелкните правой кнопкой мыши на Commit, Add Custom Action и выберите файл, который вы хотите запустить. (Обратите внимание, что он уже должен находиться в папке вашего приложения, что не должно быть проблемой в вашем случае, так как вы все равно запускаете свою программу. Просто выберите вывод вашего проекта.
  2. Затем нажмите на этот добавленный.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, работающего с системной учетной записью (и, возможно, с повышенными правами), не ведут себя так же, как если бы они были инициированы интерактивным пользователем с помощью ярлыка, и трудно имитировать такое поведение ярлыка из контекста установщика.

Другие вопросы по тегам