-->

ClickOnce应用程序跳过要求的更新(如果选择了跳过失败的发射)(ClickOnce appli

2019-09-02 00:13发布

当用户运行他们被要求如果他们想安装新版本,我更新我的ClickOnce应用程序,然后。

我在一个高度受控的环境中工作。 当更新可用时,它必须安装(向后与数据库的兼容性不与旧版本的保证)。

另一种选择是,如果按下跳跃失败运行(即正常工作太)。

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

Answer 1:

本文回答你的问题。 我指着你的文章,而不是仅仅发布一个答案,因为一切都在文章中是值得了解的。

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

以下是文章的相关摘录:

强制的ClickOnce更新

其中的ClickOnce的大卖点就是自动更新。 其中一个常见的问题我关于更新得到的是“我怎样才能迫使用户更新?”

有三件事情知道的关于强迫的用户更新:

1)如果你的应用是一个在线应用程序,用户将始终运行最新版本; 在线应用程序获取下载每次访问应用程序。 因此,随着在线应用程序,你得到强制更新默认。

2)如果您的应用程序安装的应用程序,你可以通过使用MinimumRequiredVersion属性强制更新。 如果您使用Visual Studio发布应用程序,你可以设置从更新对话框这个属性。

3)要注意的最后一件事情是,如果您的应用程序安装的应用程序(和你没有设置MinimumRequiredVersion属性),如果用户启动从开始菜单快捷方式的应用程序的ClickOnce将提示用户以“更新”只限Dialog 。 也就是说,如果一个应用程序安装的应用程序和用户从URL启动应用程序,ClickOnce的强制更新。


我还发现了另外一个很好的文章:

ClickOnce的:把易用性和可靠性为智能客户端部署



Answer 2:

这恰恰为我工作。 添加以下的项目文件:

<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>


Answer 3:

它的工作我通过取消应用程序应该检查更新 ,并且应用程序启动时没有两个版本后提示用户更新。



Answer 4:

除了大卫的回答 ,只需安装AutoUpdateProjectsMinimumRequiredClickOnceVersion NuGet包在你的项目。 一旦你有你的项目设置为检查更新,并使用所需的最小版本,这将处理确保所需的最低版本总是匹配当前版本(即用户总是会被强制更新到最新版本)。



Answer 5:

要强制在客户端上必须设置的最低版本字段等于给正在部署的当前版本的更新,这将迫使whiout“跳过”选项的更新。



文章来源: ClickOnce application skips asking for an update (or fail launch if skip is selected)