ClickOnce应用程序跳过要求更新(如果选择了skip,则跳过失败)

Vac*_*ano 22 c# clickonce visual-studio-2008-sp1 .net-3.5 visual-studio-2008

我更新了我的ClickOnce应用程序,然后当用户运行时,系统会询问他们是否要安装新版本.

我在一个高度控制的环境中工作.当更新可用时,必须安装(旧版本无法确保向后兼容数据库).

另一种选择是如果按下跳过则运行失败(也可以正常工作).

我需要一些方法来阻止他们运行旧版本的应用程序.

Dav*_*vid 41

本文回答了您的问题.我指的是你的文章,而不只是发布一个答案,因为文章中的所有内容都值得了解.

http://www.sayedhashimi.com/CategoryView,category,ClickOnce.aspx

以下是文章的相关摘录:

强制ClickOnce更新

ClickOnce的一大卖点是自动更新.关于更新,我得到的一个常见问题是"如何强制更新用户?"

关于强制用户更新,有三件事需要了解:

1)如果您的应用程序是在线应用程序,您的用户将始终运行最新版本; 每次访问应用程序时都会下载在线应用程序.因此,对于在线应用程序,默认情况下会进行强制更新.

2)如果您的应用程序是已安装的应用程序,则可以使用MinimumRequiredVersion属性强制更新.如果使用Visual Studio发布应用程序,则可以从"更新"对话框中设置此属性.

3)最后要注意的是,如果您的应用程序是已安装的应用程序(并且您尚未设置MinimumRequiredVersion属性),则ClickOnce将仅在用户从"开始"菜单快捷方式启动应用程序时提示"可用更新"对话框.也就是说,如果应用程序是已安装的应用程序,并且用户从URL启动应用程序,则ClickOnce会强制进行更新.


我还发现了另一篇好文章:

ClickOnce:为智能客户端部署带来轻松和可靠性

  • 以下是不同网站上第一个链接的缓存内容 - http://sedodream.com/CategoryView,category,ClickOnce.aspx (3认同)

ora*_*rad 6

这对我来说很有用.将以下内容添加到项目文件中:

<UpdateRequired>true</UpdateRequired>
<MinimumRequiredVersion>$(ApplicationVersion)</MinimumRequiredVersion>
Run Code Online (Sandbox Code Playgroud)

请注意,ApplicationVersion不能像1.0.0.*项目文件中那样具有值,并且应该在构建时增加值以使自动更新生效.

如果使用TeamCity,要增加版本号,请转到项目的" 构建配置"页面并设置以下系统属性:

system.ApplicationVersion = %build.number%
Run Code Online (Sandbox Code Playgroud)

你也可以让MSBuild按时间增加版本,如下所示:

<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>
Run Code Online (Sandbox Code Playgroud)