Как запустить исполняемый файл в конце проекта установки?

У меня есть проект установки Visual Studio, который я использую для установки довольно простого приложения WinForms. В конце установки у меня есть страница пользовательского интерфейса, которая показывает один флажок, который спрашивает пользователя, хотят ли они запустить приложение. Я видел, как другие установщики делают это довольно часто. Но я не могу найти способ заставить проект установки запустить исполняемый файл после завершения установки. Идеи?

ПРИМЕЧАНИЕ. Вы не можете использовать пользовательские действия, поскольку они используются как часть процесса установки. Я хочу запустить мое установленное приложение, как только пользователь нажмет кнопку "Закрыть" в конце установки.

7 ответов

Решение

Я считаю, что это одно из реальных ограничений проекта установки Visual Studio. Вы должны иметь возможность изменять последнюю страницу пользовательского интерфейса установки, но VS.NET не дает вам возможности сделать это. Вы можете изменить таблицы в.MSI после того, как он будет собран, но VS.NET, вероятно, будет перезаписывать эти изменения при каждом построении. Вы можете переопределить последнюю страницу, используя модуль слияния, который вы включили в проект установки. В любом случае вам необходимо ознакомиться с тем, как диалоги пользовательского интерфейса создаются в.MSI, и это не тривиально.

Возможно, вы захотите перейти к бесплатному установщику на основе сценариев или купить коммерческое приложение для разработки программы установки (просто не покупайте InstallShield из-за любви к Питу). Взгляните на InstallAware (хотя я не использовал его).

Я только что нашел очень простой способ, который не требует внешних инструментов. Вам нужно только добавить файл класса в основной проект и настраиваемое действие в проекте установки.

http://www.codeproject.com/KB/install/Installation.aspx

Вы также можете использовать пользовательские действия

Я сделал это для внутренних приложений, создав жгут VB Script, который запускает исполняемый файл установки, ждет его закрытия и запускает вторую программу.

Вы также можете сделать это, немного отполировав, используя несколько вызовов Win API в исполняемом файле C.

Вы можете использовать MSILAUNCH (хотя он работает только с MSICREATE).

http://www.cornerhouse.ca/en/msi.html

Вы можете сделать это с помощью специального установщика. просто добавьте класс установщика, и там вы увидите много событий, как после установки, до установки. просто подключитесь после установки и оттуда запустите ur exe по классу процесса. Я хотел бы предложить вам Google, чтобы узнать больше о пользовательских установщика. вот одна хорошая ссылка, которая может помочь вам http://www.codeproject.com/Articles/19560/Launching-Your-Application-After-Install-using-Vis

Спасибо

Я справился с этим, вызвав метод Main для сборки, используя следующую строку:

(typeof(ClassWithinAssemblyToExecute)).Assembly.EntryPoint.Invoke(null, new Object[] {} )
Другие вопросы по тегам