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





Я сделал это для внутренних приложений, создав жгут VB Script, который запускает исполняемый файл установки, ожидает его закрытия, а затем запускает вторую программу.
Вы также можете добиться этого, используя несколько вызовов Win API в исполняемом файле C.
Я считаю, что это одно из реальных ограничений проекта установки Visual Studio. У вас должна быть возможность изменить последнюю страницу пользовательского интерфейса установки, но VS.NET не дает вам возможности сделать это. Вы можете изменить таблицы в .MSI после того, как он был построен, но VS.NET, вероятно, перезапишет эти изменения каждый раз, когда он будет построен. Вы можете переопределить последнюю страницу, используя модуль слияния, который вы включаете в проект установки. В любом случае вам нужно будет ознакомиться с тем, как диалоговые окна пользовательского интерфейса создаются в .MSI, и это нетривиально.
Вы можете подумать о переходе на бесплатный установщик на основе сценариев или купить коммерческое приложение для создания установки (только не покупайте InstallShield из любви к Питу). Взгляните на InstallAware (правда, я им не пользовался).
Вы можете использовать MSILAUNCH (хотя у меня он работает только с MSICREATE).
Вы также можете использовать настраиваемые действия
Я только что нашел очень простой способ, не требующий внешних инструментов. Вам нужно только добавить файл класса в основной проект и настраиваемое действие в проект установки.
http://www.codeproject.com/KB/install/Installation.aspx
спасибо, ссылка помогла мне лучше понять весь процесс
Я справился с этим, вызвав метод Main сборки, используя следующую строку:
(typeof(ClassWithinAssemblyToExecute)).Assembly.EntryPoint.Invoke(null, new Object[] {} )
хорошо, так что это не запускает новый процесс, но он работал для моих нужд, поскольку все, что мне нужно было сделать, это запустить небольшую форму конфигурации.
вы можете сделать это с помощью специального установщика. просто добавьте класс установщика, и вы увидите много событий, например, после установки, перед установкой. просто подключитесь после установки и оттуда запустите ur exe по классу процесса. Я бы посоветовал вам узнать больше о пользовательском установщике в Google. вот одна хорошая ссылка, которая может помочь вам http://www.codeproject.com/Articles/19560/Launching-Your-Application-After-Install-using-Vis
Благодарность
В папке фиксации в таможенных действиях вы можете выбрать добавить настраиваемое действие и перейти к своему основному выходному exe. Это будет выполнено после установки. Вы также можете сделать это условным, установив флажок, который вы можете добавить в диалоговые окна настройки. Например, в свойстве condition у вас будет CHECKBOXA1 = 1.