如何在使用ClickOnce进行更新后阻止加载我的应用程序的两个实例?

时间:2014-09-03 21:11:08

标签: c# wpf clickonce app.xaml

我有一个使用ClickOnce部署的应用程序。我使用的是here提供的默认InstallUpdateUpdateSyncWithInfo()方法。我做了两个改变;当我从静态类调用它时,我将方法设置为public和static。我知道不好的做法。这是一些懒惰的代码,只是为了试用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()方法,但事实并非如此。

有人知道如何在应用程序更新后阻止我的应用程序的两个实例加载吗?

标题中有another post on Stack Overflow,我认为会直接解决这个问题,但我没看到海报如何修改他的代码以防止加载两个实例。

1 个答案:

答案 0 :(得分:2)

无需自行编写自动更新代码。首先,我会删除您的更新代码。

接下来右键单击您的C#项目并选择Properties。然后转到Publish并点击Updates...。勾选复选框,以便您的应用程序检查更新,ClickOnce将处理其余的。