使ClickOnce更新强制性?

soo*_*ise 10 c# clickonce

目前在我正在构建的应用程序中,我检查了更新,它为用户提供了安装或不安装更新的选项.我想让它只是自动安装更新,无论如何.我怎样才能做出这个改变?

JD *_*toy 20

自动更新

选择ClickOnce更新策略(需要更新)

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

程序化更新

如何:添加按需编程更新

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

以下是轮询间隔的示例实现:示例.

您还可以组合以上两种更新方法.

  • @Derek:原始示例不再在线,但它位于[Internet Archive的Wayback Machine]中(http://web.archive.org/web/*/http://msdn.microsoft.com/en-us /library/cc558902.aspx).在MSDN上还有另一个例子:[如何:使用ClickOnce部署API以编程方式检查应用程序更新](https://msdn.microsoft.com/en-us/library/ms404263.aspx). (4认同)
  • 有没有办法自动将最低要求版本设置为最新版本,还是每次发布新版本时都必须手动更改此值? (3认同)

Dar*_*tel 6

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

它会自动使您的每个发布/更新成为强制性的,而无需做任何额外的事情。