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

StackOverflow https://stackoverflow.com/questions/60565

  •  09-06-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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

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

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

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

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

(typeof(ClassWithinAssemblyToExecute)).Assembly.EntryPoint.Invoke(null, new Object[] {} )

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

Спасибо

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top