Как запустить исполняемый файл в конце проекта установки? - PullRequest
20 голосов
/ 13 сентября 2008

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

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

Ответы [ 7 ]

7 голосов
/ 13 сентября 2008

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

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

4 голосов
/ 24 ноября 2010

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

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

4 голосов
/ 10 декабря 2009

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

1 голос
/ 17 ноября 2008

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

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

1 голос
/ 13 сентября 2008

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

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

0 голосов
/ 29 января 2013

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

спасибо

0 голосов
/ 13 сентября 2011

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

(typeof(ClassWithinAssemblyToExecute)).Assembly.EntryPoint.Invoke(null, new Object[] {} )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...