我遇到问题,看到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. ClickOnce清单和部署问题
- 3. 的ClickOnce与IIS部署问题7
- 4. 重新部署ClickOnce部署
- 5. ClickOnce部署 - 部署异常
- 6. Wpf Clickonce部署
- 7. ClickOnce部署
- 8. ClickOnce部署“System.IO.IOException”
- 9. Clickonce部分部署
- 10. 用ClickOnce部署About.htm
- 11. ClickOnce部署位置
- 12. ClickOnce部署恐怖
- 13. ClickOnce部署的应用程序注册表执行问题
- 14. ClickOnce部署问题(对我来说,这太讨厌了)?
- 15. 部署问题
- 16. ClickOnce部署到生产
- 17. '抛光'ClickOnce部署 - 如何?
- 18. ClickOnce部署Windows服务?
- 19. ClickOnce部署中的Crystal Reports
- 20. 调试ClickOnce部署函数
- 21. ClickOnce部署网站修改
- 22. ClickOnce和app.config不部署
- 23. ClickOnce部署 - 无法安装
- 24. ClickOnce部署和下载
- 25. Symfony部署问题
- 26. Wildfly部署问题
- 27. RavenDB部署问题
- 28. asp部署问题
- 29. WPF部署问题
- 30. BizTalk部署问题
您使用的是什么版本的Visual Studio? – 2013-11-16 18:44:47