2009-12-30 86 views
1

我正在通过代码进行ClickOnce更新(即使用ApplicationDeployment对象),并且遇到了意外问题:ClickOnce更新(编码)每24小时只能看到新的更新?

说我安装了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

我的想法:你做的是错的事,或者忘记了某件事。我能够每天多次更新我的ClickOnce应用程序。 – 2009-12-30 11:03:12

+0

感谢您的想法。我已经发布了上面的代码。任何想法将不胜感激。 :-) – MrGreggles 2009-12-30 20:51:19

回答

0

检查您的Web服务器上的缓存设置。我想不出新的ClickOnce文件不可用的另一个原因。

+0

我通过更新我网站上的页面,与应用程序文件所在的位置相同的网站以及页面随每次更改而更新的方式进行了检查。所以看起来缓存不是问题。但thx的想法! – MrGreggles 2009-12-30 20:35:47