Установка 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());
}