使ClickOnce更新强制性?

时间:2010-06-23 16:26:14

标签: c# clickonce

目前在我正在构建的应用程序中,我检查了更新,它为用户提供了安装或不安装更新的选项。 我想让它只是自动安装更新,无论如何。 我该如何进行此更改?

4 个答案:

答案 0 :(得分:20)

自动更新

Choosing a ClickOnce Update Strategy需要更新

一种选择是设置软件的自动更新,并通过在部署清单中设置所需的最低版本来标记它们。您可以在Visual Studio的属性对话框中进行设置,也可以使用以下标记进行配置:<deployment install="true" minimumRequiredVersion="1.0.0.0">。所需的最低版本会检查程序集的版本,如果它不是您在此处指定的版本,则会强制进行更新。

程序化更新

How to: Add On-Demand Programmatic Update

允许您更多地控制更新发生的时间和频率的另一个选项是以编程方式执行更新。您可以使用ClickOnce API检查部署服务器上的任何更新,并在应用程序运行后安装它们。您可以更好地控制应安装的更新,安装方式以及如何通知用户更新。如果您的应用程序通常是一个长时间运行的实例,您也可以设置定时器,以便经常在后台运行以进行更新。

以下是一个轮询时间间隔的示例实现:Example

您还可以合并上述两种更新方法。

答案 1 :(得分:1)

“自动更新项目的最低要求ClickOnce版本”项目有一个nuget包,可以为您更新ClickOnce设置。

https://aupmrcov.codeplex.com/ [已存档]

GitHub的:

https://github.com/deadlydog/AutoUpdateProjectsMinimumRequiredClickOnceVersion

的NuGet:

https://www.nuget.org/packages/AutoUpdateProjectsMinimumRequiredClickOnceVersion

答案 2 :(得分:1)

只需在项目的<target>文件中的.csproj标签下方添加即可。

<Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

    // Other Tags ...

    <Target Name="AutoSetMinimumRequiredVersion" BeforeTargets="GenerateDeploymentManifest">
        <FormatVersion Version="$(ApplicationVersion)" Revision="$(ApplicationRevision)">
            <Output PropertyName="MinimumRequiredVersion" TaskParameter="OutputVersion" />
        </FormatVersion>
        <FormatVersion Version="$(ApplicationVersion)" Revision="$(ApplicationRevision)">
            <Output PropertyName="_DeploymentBuiltMinimumRequiredVersion" TaskParameter="OutputVersion" />
        </FormatVersion>
    </Target>

    // Other Tags ...

</Project>

它将自动使您的每个发布/更新成为必需,而无需执行任何其他操作。

答案 3 :(得分:0)

如果您指定的最低版本与当前发布版本相同,则您的应用程序将在客户打开后立即更新。

1 - 只需右键单击项目名称
2 - 选择属性
3-Click Publish(注释发布版)
4 - 单击“更新”按钮
5 - 选择“指定此应用程序所需的最低版本”

最后,使版本号与“发布版本”相同。