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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
21
0
23 867
7
Перейти к ответу Данный вопрос помечен как решенный

Ответы 7

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

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

Ответ принят как подходящий

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

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

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

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

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

В папке фиксации в таможенных действиях вы можете выбрать добавить настраиваемое действие и перейти к своему основному выходному exe. Это будет выполнено после установки. Вы также можете сделать это условным, установив флажок, который вы можете добавить в диалоговые окна настройки. Например, в свойстве condition у вас будет CHECKBOXA1 = 1.

Peter Jamsmenson 25.04.2015 14:45

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

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

спасибо, ссылка помогла мне лучше понять весь процесс

DeveloperChris 09.05.2011 07:02

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

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

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

Grub 13.09.2011 09:23

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

Благодарность

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