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

时间:2009-10-28 15:37:35

标签: c# visual-studio-2008 clickonce .net-3.5 visual-studio-2008-sp1

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

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

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

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

5 个答案:

答案 0 :(得分:41)

这篇文章回答了你的问题。我指的是你的文章,而不只是发表一个答案,因为文章中的所有内容都值得了解。

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

以下是文章的相关摘录:

  

强制执行ClickOnce更新

     

其中一个重要卖点   ClickOnce是自动更新。之一   我得到的常见问题   更新是“我怎么强迫   更新用户?“

     

有三件事需要了解   尊重强制用户更新:

     

1)如果您的申请是在线的   应用程序,您的用户将永远   运行最新版本;线上   应用程序每次都下载   访问该应用程序。从而,   在线应用程序,你得到   默认情况下强制更新。

     

2)如果您的应用程序已安装   应用程序,您可以强制更新   使用MinimumRequiredVersion   属性。如果你发表你的   使用Visual Studio的应用程序,你   可以从Updates设置此属性   对话框。

     

3)最后要注意的是,如果   您的应用程序已安装   应用程序(你没有设置   MinimumRequiredVersion属性)   ClickOnce将提示用户   “仅更新可用”对话框,如果是   用户从中启动应用程序   开始菜单快捷方式也就是说,如果一个   应用程序已安装   应用程序和用户启动   来自URL的应用程序ClickOnce   强制更新。


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

ClickOnce: Bringing Ease and Reliability to Smart Client Deployment

答案 1 :(得分:6)

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

<UpdateRequired>true</UpdateRequired>
<MinimumRequiredVersion>$(ApplicationVersion)</MinimumRequiredVersion>

请注意,ApplicationVersion在项目文件中不能包含1.0.0.*之类的值,并且应该在构建时递增,以使自动更新生效。

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

system.ApplicationVersion = %build.number%

你还可以通过以下方式获得 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>

答案 2 :(得分:1)

我通过取消选中应用程序应该检查更新,并且应用程序开始更新而不会在两个版本之后提示用户。

Enter image description here

答案 3 :(得分:1)

除了David's answer之外,只需在项目中安装AutoUpdateProjectsMinimumRequiredClickOnceVersion nuget package即可。一旦您的项目设置为检查更新并使用最低要求版本,这将确保所需的最低版本始终与您当前的版本匹配(即用户将始终被迫更新到最新版本)

答案 4 :(得分:0)

要在客户端上强制更新,您必须将最小版本字段设置为等于您正在部署的当前版本,这将强制更新,而不会跳过&#34;跳过&#34;选项。