gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 12:48:09 24 4
gpt4 key购买 nike

我不想使用 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: user has refused to grant required permissions to the application

你能帮忙吗

提前致谢。

最佳答案

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

enter image description here

我不太确定您为什么会收到该错误,但我也在使用相同的方法。手动检查更新。但是我的应用程序部署在服务器上。我有这个计时器,每 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.

}

编辑

我已经更新了我的答案。您可以复制并粘贴这个,并根据您的应用需求进行调整。

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

关于c# - 使用 WPF ClickOnce 手动检查更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36518349/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com