Как предотвратить загрузку двух экземпляров моего приложения после обновления с помощью ClickOnce?

1

У меня есть приложение, которое я развертываю с помощью ClickOnce. Я использую по умолчанию InstallUpdateUpdateSyncWithInfo() метод, предоставленный здесь. Я сделал два изменения; Я сделал метод общедоступным и статическим, поскольку я вызываю его из статического класса. Я знаю плохие практики. Это какой-то ленивый код, чтобы попробовать ClickOnce.

Каждый раз при обновлении приложения он загружает два экземпляра: старый и новый.

Кроме этого, хотя я вызываю метод в своем app.xaml.cs следующим образом:

public partial class App : Application
{
    private void Application_Startup(object sender, StartupEventArgs e)
    {
        MainWindow window = new MainWindow();
        CheckForUpdates.InstallUpdateSyncWithInfo();
        window.Show();
    }
}

Я думал, что если я вызову Window.Show() после проверки обновления, он вызовет метод Application.Restart() в InstallUpdateUpdateSyncWithInfo() прежде чем старая версия сможет загрузить, но это не так.

Кто-нибудь знает, как я могу предотвратить загрузку двух экземпляров моего приложения после обновления приложения?

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

Теги:
wpf
clickonce
app.xaml

1 ответ

2
Лучший ответ

Не нужно писать код автообновления самостоятельно. Во-первых, я удалю ваш код обновления.

Затем щелкните правой кнопкой мыши на проекте С# и выберите " Properties. Затем перейдите в меню " Publish и нажмите " Updates.... Установите флажок, чтобы ваше приложение проверяло наличие обновлений, а ClickOnce будет обрабатывать остальные.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню