我遇到問題,看到ClickOnce如何知道它如何比較文件以及如何查找這些文件。我將讓我的ClickOnce應用程序連接到服務器,但它是否在內部執行此操作?ClickOnce部署問題
回答
如果你不想做編程的更新,請在更新對話框中的「運行前檢查更新」(點擊發布屏幕上更新)。然後,當您發佈新版本時,它將與原始部署位於相同的文件夾中。當用戶運行應用程序時,它會檢查是否有更新,並會詢問他是否要安裝它。此時,用戶可以跳過它,或接受更新。
如果您使最低版本(在更新對話框中)等於您正在部署的版本,它不會問他,它只會更新應用程序。
如果他跳過更新,幾周後他不會再看到它,如果有的話。微軟說2周,但我不相信它再次出現,所以他可能要等到NEXT更新或去手工安裝新的。
你會發現你需要的一切在Publishing ClickOnce Applications(MSDN)。
從How to: Check for Application Updates Programmatically Using the ClickOnce Deployment API:
- 創建一個新的Windows窗體用你喜歡的命令行或可視化工具的應用。
- 創建您希望用戶選擇檢查更新的任何按鈕,菜單項或其他用戶界面項目。從該項目的 事件處理程序調用以下方法檢查並安裝 更新。
private void InstallUpdateSyncWithInfo()
{
UpdateCheckInfo info = null;
if (ApplicationDeployment.IsNetworkDeployed)
{
ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
try
{
info = ad.CheckForDetailedUpdate();
}
catch (DeploymentDownloadException dde)
{
MessageBox.Show("The new version of the application cannot be downloaded at this time. \n\nPlease check your network connection, or try again later. Error: " + dde.Message);
return;
}
catch (InvalidDeploymentException ide)
{
MessageBox.Show("Cannot check for a new version of the application. The ClickOnce deployment is corrupt. Please redeploy the application and try again. Error: " + ide.Message);
return;
}
catch (InvalidOperationException ioe)
{
MessageBox.Show("This application cannot be updated. It is likely not a ClickOnce application. Error: " + ioe.Message);
return;
}
if (info.UpdateAvailable)
{
Boolean doUpdate = true;
if (!info.IsUpdateRequired)
{
DialogResult dr = MessageBox.Show("An update is available. Would you like to update the application now?", "Update Available", MessageBoxButtons.OKCancel);
if (!(DialogResult.OK == dr))
{
doUpdate = false;
}
}
else
{
// Display a message that the app MUST reboot. Display the minimum required version.
MessageBox.Show("This application has detected a mandatory update from your current " +
"version to version " + info.MinimumRequiredVersion.ToString() +
". The application will now install the update and restart.",
"Update Available", MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
if (doUpdate)
{
try
{
ad.Update();
MessageBox.Show("The application has been upgraded, and will now restart.");
Application.Restart();
}
catch (DeploymentDownloadException dde)
{
MessageBox.Show("Cannot install the latest version of the application. \n\nPlease check your network connection, or try again later. Error: " + dde);
return;
}
}
}
}
}
我看到CLickOnce可以檢查自身是否有更新,但如果我想使用ClickOnce檢查軟件更新並讓應用程序提示用戶進行更新,如果Clickonce在內部執行此操作,或者如果它是一個需要做的外部程序 – appel 2013-03-15 21:00:28
@appel在這裏,你去。這是一個完整的例子。如果您認爲它回答您的問題,請將此答案標記爲已接受。 – 2013-03-16 09:17:52
這是否適用於Windows 7(和Windows 8)?是不是與[用戶帳戶控制](http://en.wikipedia.org/wiki/User_Account_Control)相關的異常? – 2013-11-17 23:23:04
- 1. ClickOnce部署在線問題
- 2. Lightswitch Clickonce部署問題
- 3. ClickOnce清單和部署問題
- 4. vb.net ClickOnce應用程序部署問題
- 5. 問題使用ClickOnce部署COM組件
- 6. 的ClickOnce與IIS部署問題7
- 7. 重新部署ClickOnce部署
- 8. Wpf Clickonce部署
- 9. ClickOnce部署「System.IO.IOException」
- 10. ClickOnce部署
- 11. Clickonce部分部署
- 12. 用ClickOnce部署About.htm
- 13. ClickOnce部署性能
- 14. 用ClickOnce部署System.Net.Http.dll
- 15. ClickOnce部署恐怖
- 16. 針對普通用戶的ClickOnce部署的基本問題
- 17. ClickOnce部署問題(對我來說,這太討厭了)?
- 18. ClickOnce部署的應用程序註冊表執行問題
- 19. 部署問題
- 20. ClickOnce部署Windows服務?
- 21. ClickOnce部署 - 無法安裝
- 22. ClickOnce和app.config不部署
- 23. ClickOnce部署位置Web
- 24. ClickOnce部署和下載
- 25. '拋光'ClickOnce部署 - 如何?
- 26. 調試ClickOnce部署函數
- 27. ClickOnce部署中的Crystal Reports
- 28. ClickOnce部署網站修改
- 29. ClickOnce部署到生產
- 30. ClickOnce部署,刪除fileGroup
您使用的是什麼版本的Visual Studio? – 2013-11-16 18:44:47