如何在wpf应用程序中检查更新安装新版本

时间:2016-05-19 10:32:30

标签: wpf version

我开发了wpf应用程序并创建了安装文件。 并且它工作正常,但是当点击按钮时如何检查以及如何以编程方式安装旧版本的最新版本

2 个答案:

答案 0 :(得分:0)

首先,确保您的应用程序已启用以检查更新。右键单击项目 - >属性 - >发布标签 - >更新。勾选复选框"应用程序应检查更新"

Enable check for updates

使用以下代码,在按钮单击事件中检查更新

UpdateCheckInfo info = null;

if (ApplicationDeployment.IsNetworkDeployed)
{
    ApplicationDeployment ad = ApplicationDeployment.CurrentDeployment;

    try
    {
        info = ad.CheckForDetailedUpdate();

    }
    catch (DeploymentDownloadException dde)
    {
        MessageBox.Show("The new version of the application cannot be downloaded at this time. \n\nPlease check your network connection, or try again later. Error: " + dde.Message);
        return;
    }
    catch (InvalidDeploymentException ide)
    {
        MessageBox.Show("Cannot check for a new version of the application. The ClickOnce deployment is corrupt. Please redeploy the application and try again. Error: " + ide.Message);
        return;
    }
    catch (InvalidOperationException ioe)
    {
        MessageBox.Show("This application cannot be updated. It is likely not a ClickOnce application. Error: " + ioe.Message);
        return;
    }

    if (info.UpdateAvailable)
    {
        Boolean doUpdate = true;

        if (!info.IsUpdateRequired)
        {
            DialogResult dr = MessageBox.Show("An update is available. Would you like to update the application now?", "Update Available", MessageBoxButtons.OKCancel);
            if (!(DialogResult.OK == dr))
            {
                doUpdate = false;
            }
        }
        else
        {
            // Display a message that the app MUST reboot. Display the minimum required version.
            MessageBox.Show("This application has detected a mandatory update from your current " + 
                "version to version " + info.MinimumRequiredVersion.ToString() + 
                ". The application will now install the update and restart.", 
                "Update Available", MessageBoxButtons.OK, 
                MessageBoxIcon.Information);
        }

        if (doUpdate)
        {
            try
            {
                ad.Update();
                MessageBox.Show("The application has been upgraded, and will now restart.");
                Application.Restart();
            }
            catch (DeploymentDownloadException dde)
            {
                MessageBox.Show("Cannot install the latest version of the application. \n\nPlease check your network connection, or try again later. Error: " + dde);
                return;
            }
        }
    }
}

答案 1 :(得分:0)

使用ClickOnce(https://msdn.microsoft.com/en-us/library/t71a733d(v=vs.140).aspx)查看部署。这将在每次启动程序时检查更新。

在Visual Studio 2015中,只需点击Build - >发布并按照向导进行操作。我觉得很简单。