У меня есть приложение, которое я развертываю с помощью 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, которая из названия, я думал, будет напрямую решать этот вопрос, но я не видел, как плакат изменил свой код, чтобы предотвратить загрузку двух экземпляров.
Не нужно писать код автообновления самостоятельно. Во-первых, я удалю ваш код обновления.
Затем щелкните правой кнопкой мыши на проекте С# и выберите " Properties
. Затем перейдите в меню " Publish
и нажмите " Updates...
. Установите флажок, чтобы ваше приложение проверяло наличие обновлений, а ClickOnce будет обрабатывать остальные.