Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 是否强制执行ClickOnce更新?_C#_Clickonce - Fatal编程技术网

C# 是否强制执行ClickOnce更新?

C# 是否强制执行ClickOnce更新?,c#,clickonce,C#,Clickonce,目前在我正在构建的一个应用程序中,我让它检查更新,它为用户提供了安装或不安装更新的选项。 我希望它只是自动安装更新,无论发生什么。 如何进行此更改?自动更新 (需要进行更新) 一个选项是设置软件的自动更新,并通过在部署清单中设置所需的最低版本将其标记为所需。您可以在VisualStudio的“属性”对话框中进行设置,也可以使用以下标记进行配置:。所需的最低版本将检查程序集的版本,如果它至少不是您在此处指定的版本,它将强制更新 程序更新 另一个允许您更多地控制更新发生时间和频率的选项是以编程方式

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

自动更新 (需要进行更新

一个选项是设置软件的自动更新,并通过在部署清单中设置所需的最低版本将其标记为所需。您可以在VisualStudio的“属性”对话框中进行设置,也可以使用以下标记进行配置:
。所需的最低版本将检查程序集的版本,如果它至少不是您在此处指定的版本,它将强制更新

程序更新

另一个允许您更多地控制更新发生时间和频率的选项是以编程方式进行更新。您可以使用ClickOnce API检查部署服务器上的任何更新,并在应用程序运行后安装这些更新。您可以更好地控制应该安装哪些更新、如何安装以及如何通知用户更新。如果您的应用程序通常是一个长时间运行的实例,那么您还可以设置计时器,以便每隔一段时间在后台运行一次,以便进行更新

下面是一个按时间间隔轮询的示例实现:

您还可以将上述两种更新方法结合使用。

自动更新项目的最低所需ClickOnce版本”项目有一个nuget软件包,可为您更新ClickOnce设置

[存档]

GitHub:

努吉:


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

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


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

只需在项目的
.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>

//其他标签。。。
//其他标签。。。

它将自动使您的每次发布/更新成为强制性的,而无需做任何额外的工作

我相信设置最低要求版本会让用户选择升级或关闭应用程序。是否有办法自动将最低要求版本设置为最新版本,还是每次发布新版本时都必须手动更改此值?我在答案后面附加了另一个选项供您查看。您也可以创建生成任务,在ClickOnce部署清单中自动更新所需的最低版本,作为生成/部署过程的一部分。Nate--它不会给用户任何机会说是或否,它只是安装更新。@Derek:原始示例不再联机,但它在中。MSDN上还有另一个例子:。请看我问题的答案:这值得更多的爱。。还有一个GITHub页面