【发布时间】:2018-05-03 15:17:33
【问题描述】:
我有一个 ClickOnce 应用程序,它应该在应用程序启动之前自动检查更新。如果我手动启动应用程序,这也可以完美运行。
但是,我还添加了一个注册表项以在 Windows 启动时启动应用程序,在这种情况下,不会执行更新检查,并且应用程序启动就像没有更新一样 - 我猜是因为到了应用程序启动与发布 ClickOnce 应用程序安装的网络驱动器的连接尚未建立。
作为一种解决方法,我尝试在我的 MainWindow 已经加载后通过调用它来手动强制我的代码中的应用程序:
private void checkforupdate()
{
try
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
if (ad.CheckForUpdate())
{
MessageBox.Show("Update available!");
ad.Update();
}
}
catch { }
}
但是由于某种原因,此代码仍然仅在我手动启动应用程序时触发更新,当它在 Windows 上自动启动时,什么也没有发生。 我调用 checkforupdate 的代码部分是在已经从发布 ClickOnce 安装文件的同一驱动器加载了一些东西之后,因此必须在那时建立连接。
有人知道该怎么做吗?
【问题讨论】:
-
代码当然可以工作/运行,现在如果更新发生与否,那是另一回事,看看你是如何管理它的,如果它通过网络,那么如果没有连接发生更新,应用程序不应该运行?或对其进行调整以等待有可用的连接。