我正在通过代码进行ClickOnce更新(即使用ApplicationDeployment对象),我遇到了一个意想不到的问题:
说我安装了1.0版。如果我坚持使用新版本(比如1.1)并运行应用程序,它将会更新到1.1。
但是,如果我在不久之后(比如1.2)推出新版本并运行已安装的应用程序(1.1),它将不会选择更新新版本。直到第二天我跑1.1。似乎大约24小时后。然后它会根据需要更新到1.2。
任何想法可能会发生什么?
P.S。在检查应用程序的网络部署后,这是我正在使用的代码。这是一个小型更新测试应用程序的一部分,所以在那里有一些额外的反馈......
//
// CHECK WHETHER THERE'S AN UPDATE AVAILABLE
// No? Return.
//
UpdateCheckInfo updateInfo = null;
ApplicationDeployment deployment = ApplicationDeployment.CurrentDeployment;
try // to see if there's an update
{
// attempt to retrieve any updates
Console.WriteLine("Checking for a detailed update now.");
updateInfo = deployment.CheckForDetailedUpdate(persistUpdateCheckResult: false);
Console.WriteLine("Check complete, appears successful.");
}
catch (Exception ex)
{
throw new Exception("Problem checking for updates: " + ex.Message + Environment.NewLine);
}
bool noUpdateAvailable = !updateInfo.UpdateAvailable;
if (noUpdateAvailable)
{
Console.WriteLine("No update. This version is: " + deployment.CurrentVersion.ToString());
return;
}
else
{
Console.WriteLine("There's an update available!");
}
//
// TRY TO UPDATE THE APP
//
Console.WriteLine("Attempting to perform update.");
try
{
deployment.Update();
Console.WriteLine("Update appears to have been successful. Restart the app!");
}
catch (Exception ex)
{
Console.WriteLine("Update failed: " + ex.Message);
}
答案 0 :(得分:0)
检查Web服务器上的缓存设置。我想不出为什么新的ClickOnce文件不可用的另一个原因。