我更新了ClickOnce应用程序,然后当用户运行时,会询问他们是否要安装新版本。
我在一个高度受管制的环境中工作。当有更新可用时,必须安装它(旧版本不保证与数据库的向后兼容性)。
另一个选项是如果跳过,则运行失败(这也很好用)。
我需要一种方式来阻止他们运行旧版本的应用程序。
我更新了ClickOnce应用程序,然后当用户运行时,会询问他们是否要安装新版本。
我在一个高度受管制的环境中工作。当有更新可用时,必须安装它(旧版本不保证与数据库的向后兼容性)。
另一个选项是如果跳过,则运行失败(这也很好用)。
我需要一种方式来阻止他们运行旧版本的应用程序。
本文回答了你的问题。我指向文章而不是直接发布答案,因为文章中的所有内容都值得了解。
http://www.sayedhashimi.com/CategoryView,category,ClickOnce.aspx
以下是文章中相关的摘录:
强制 ClickOnce 更新
ClickOnce 的一个重要卖点是自动更新。关于更新,我常常遇到的问题是“如何强制用户更新?”
关于强制更新,有三件事情需要知道:
1)如果您的应用程序是在线应用程序,则用户始终会运行最新版本;在线应用程序每次访问时都会下载。因此,在线应用程序默认情况下进行强制更新。
2)如果您的应用程序是已安装应用程序,则可以使用 MinimumRequiredVersion 属性来强制更新。如果您使用 Visual Studio 发布应用程序,则可以从“更新”对话框中设置此属性。
3)最后需要注意的一点是,如果您的应用程序是已安装应用程序(并且您没有设置 MinimumRequiredVersion 属性),仅当用户从“开始菜单”快捷方式启动应用程序时,ClickOnce 才会提示用户更新可用的对话框。也就是说,如果应用程序是已安装应用程序,并且用户从 URL 启动应用程序,则 ClickOnce 强制进行更新。
我还找到了另一篇好文章:
这个方法对我很有效。将以下内容添加到项目文件中:
<UpdateRequired>true</UpdateRequired>
<MinimumRequiredVersion>$(ApplicationVersion)</MinimumRequiredVersion>
ApplicationVersion
的值不能像 1.0.0.*
这样,并且应在构建时递增以使自动更新功能正常工作。system.ApplicationVersion = %build.number%
<UpdateRequired>true</UpdateRequired>
<BuildNumber>$([System.DateTime]::Now.ToString(yyyyMMdd))</BuildNumber>
<RevisionNumber>$([System.DateTime]::Now.ToString(mmss))</RevisionNumber>
<ApplicationVersion>1.0.$(BuildNumber).$(RevisionNumber)</ApplicationVersion>
<MinimumRequiredVersion>$(ApplicationVersion)</MinimumRequiredVersion>
我通过取消勾选应用程序应检查更新,使其对我起作用,并在两个版本后开始自动更新而无需提示用户。
如果要强制客户端更新,您必须将最低版本字段设置为当前正在部署的版本,这将强制更新而无需选择“跳过”选项。