Установка ClickOnce без запуска

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

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

3 ответов


Я думаю, вы могли бы поддельные его. Введите логическое свойство "IsInstalled", по умолчанию false. Потом в программе.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());
}

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

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


чтобы отключить автоматический запуск после установки, вы просто отключите активацию URL, как описано в статье MSDN Как: отключить активацию URL-адресов приложений ClickOnce (используя инструмент MageUI.exe).

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

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

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

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


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

Если вам неудобно редактировать манифест вручную или с помощью 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());
}