我不想使用ClickOnce的默认行为,它提供了一个对话框窗口,用于检查更新,我想手动检查更新

在互联网上搜索后,我发现:

        try
        {
            var deploy = ApplicationDeployment.CurrentDeployment;

            if (deploy.CheckForUpdate())
                MessageBox.Show("There is a new update");
            else
                MessageBox.Show("You using the latest version");

        }
        catch (Exception e2)
        {
            MessageBox.Show(e2.ToString());
        }


当我安装应用程序并要检查更新时,出现错误:


  system.deployment.application.trustnotgrantedexception:用户拒绝授予应用程序所需的权限


你能帮忙吗。

提前致谢。

最佳答案

右键单击您的项目。选择属性。然后去发布Tab。单击更新。然后取消选中“应用程序应检查更新”。

c# - 使用WPF ClickOnce手动检查更新-LMLPHP

我不太确定为什么会收到该错误,但我也使用了相同的方法。手动检查更新。但是我的应用程序已部署在服务器上。我有一个计时器,它每15分钟检查一次新更新。

这是我的方法。

private void InstallUpdateSyncWithInfo()
    {
        if (!isNewUpdateMessageShown)
        {
            try
            {
                if (ApplicationDeployment.IsNetworkDeployed)
                {
                    ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;
                    ad.UpdateCompleted += new AsyncCompletedEventHandler(ad_UpdateCompleted);
                    //ad_UpdateCompleted is a private method which handles what happens after the update is done
                    UpdateCheckInfo info = ad.CheckForDetailedUpdate();
                    if (info.UpdateAvailable)
                    {
                        //You can create a dialog or message that prompts the user that there's an update. Make sure the user knows that your are updating the application.
                        ad.UpdateAsync();//Updates the application asynchronously
                    }
                }

            }
            catch (Exception ex)
            {
                ex.Log();
            }
        }

    }

    void ad_UpdateCompleted(object sender, AsyncCompletedEventArgs e)
    {
        //Do something after the update. Maybe restart the application in order for the update to take effect.

    }


编辑

我已经更新了答案。您可以复制并粘贴此代码,然后根据您的应用程序需求进行调整。

在我之前的回答中,我打开一个新窗口,告诉用户有更新,然后让用户选择是否要更新应用程序。

09-03 18:51
查看更多