ClickOnce - 自动进行所有构建吗?

时间:2011-08-25 01:23:38

标签: c# wpf clickonce

是否有一个脚本可以始终使所有已发布的版本都需要更新?我想强制更新所有客户,无论如何,即使在使用ClickOnce部署API后,也会询问他们是否要更新。

2 个答案:

答案 0 :(得分:1)

是的,您可以通过要求最小版本强制升级所有客户。这样您就可以进行不兼容的服务器更改。

来自MSDN

  

要根据需要标记更新,请单击“指定所需的最低要求”   “应用程序更新”对话框中此应用程序的版本,   然后指定发布版本(Major,Minor,Build,Revision),   它指定了可以的应用程序的最低版本号   安装。

答案 1 :(得分:0)

我最终使用了ClickOnce部署API,在那里我可以更好地控制流程。诀窍是将应用程序设置为100%脱机运行的CD-ROM应用程序。然后,使用简单的ClickOnce代码,可以执行静默更新。

    private void Update()
    {

        try
        {

            ApplicationDeployment.CurrentDeployment.CheckForUpdateCompleted += new CheckForUpdateCompletedEventHandler(CurrentDeployment_CheckForUpdateCompleted);
            ApplicationDeployment.CurrentDeployment.UpdateCompleted += new System.ComponentModel.AsyncCompletedEventHandler(CurrentDeployment_UpdateCompleted);

            ApplicationDeployment.CurrentDeployment.CheckForUpdateAsync();

        }
        catch (Exception)
        {
        }

    }

    void CurrentDeployment_CheckForUpdateCompleted(object sender, CheckForUpdateCompletedEventArgs e)
    {
        try
        {
            if (e.UpdateAvailable)
            {
                ApplicationDeployment.CurrentDeployment.UpdateAsync();
            }
        }
        catch (InvalidOperationException)
        {
        }
    }

    void CurrentDeployment_UpdateCompleted(object sender, System.ComponentModel.AsyncCompletedEventArgs e)
    {
        //TODO: update completion code here
    }