我有一个使用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()
,那么在旧版本加载之前,它将调用InstallUpdateUpdateSyncWithInfo()
中的Application.Restart()
方法,但事实并非如此。
有谁知道如何在应用程序更新后阻止应用程序的两个实例加载?
在标题中有一个堆栈溢出的另一篇文章,我认为它可以直接解决这个问题,但是我看不出海报是如何修改他的代码来防止加载两个实例的。
发布于 2014-09-03 21:31:40
没有必要自己编写自动更新代码。首先,我将删除您的更新代码。
接下来,右键单击您的C#项目并选择Properties
。然后转到Publish
并单击Updates...
。勾选复选框,以便应用程序检查更新,ClickOnce将处理其余内容。
https://stackoverflow.com/questions/25653722
复制相似问题