2009-02-04 1 views
9

Когда вы устанавливаете приложение ClickOnce, программа запускается после установки. Возможно ли установить без?Установить ClickOnce без запуска

Я знаю, что могу использовать проект установки и развертывания и создать установщик, но я бы предпочел использовать ClickOnce.

+0

Я также хотел бы понять, почему он запускает приложение во время установки. Я спросил здесь: http://stackoverflow.com/questions/19735193/why-does-the-clickonce-deployment-installer-run-the-application-during-installat – Xonatron

ответ

4

Я думаю, вы могли бы подделать его. Ввести «IsInstalled» boolean свойство, по умолчанию значение false. Затем в Program.cs, измените метод Main(), чтобы выглядеть следующим образом:

[STAThread] 
static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 

    if (!Properties.Settings.Default.IsInstalled) 
    { 
     Properties.Settings.Default.IsInstalled = true; 
     Properties.Settings.Default.Save(); 

     MessageBox.Show("Install Complete"); 
     return; 
    } 

    Application.Run(new Form1()); 
} 

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

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

+1

Зачем оно запускает приложение в первую очередь? – Xonatron

+0

Также проголосовало за это решение только в свете официального решения Magnus (используя MageUI.exe). – Xonatron

8

Чтобы отключить автоматический запуск после установки, вы просто отключить активацию URL, как описано в статье MSDN How to: Disable URL Activation of ClickOnce Applications (с помощью инструмента MageUI.exe).

Чтобы отключить активацию URL для приложения

  • Выберите вкладку Параметры развертывания.

  • Снимите флажок Автоматически запускать приложение после установки.

  • Сохраните и подпишите манифест.

+0

Я пробовал это и вижу, что это официальное решение, но оно все еще запускает мое приложение. Кто-нибудь еще с этим вопросом? – Xonatron

+0

Я не могу найти «Автоматически запускать приложение» ... где это? –

0

Вы можете сделать это путем редактирования манифест приложения в Mage. Существует флажок, чтобы остановить приложение, запущенное после установки.

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

using System.Deployment.Application 

[STAThread] 
static void Main() 
{ 
    Application.EnableVisualStyles(); 
    Application.SetCompatibleTextRenderingDefault(false); 

    if (ApplicationDeployment.CurrentDeployment.IsFirstRun) 
    { 
     MessageBox.Show("Install Complete"); 
     return; 
    } 

    Application.Run(new Form1()); 
} 
+2

'IsFirstRun' истинно, когда вы обновляете приложение – prostynick