众所周知,当我们双击 clickonce 安装的应用程序时,会弹出一个“clickonce 屏幕”,显示“正在验证系统要求”。然后,如果服务器中有更新的版本,则单击更新本地安装的版本,并启动应用程序。有什么方法可以定制整个过程。这并不意味着我想对安装/升级部分做一些事情,我只是想改变整个事情的 GUI。
像屏幕上显示“正在启动应用程序......”以及不确定的进度条之类的东西就可以了。该屏幕应该取代所有 clickonce 弹出窗口,但允许 clickonce 在后台执行实际操作。
我的意思是某种启动屏幕,但它覆盖了 clickonce 屏幕的 GUI...
有什么建议么???
可以通过使用以编程方式更新应用程序ApplicationDeployment
班级。但在这种情况下,您应该实现更新逻辑,根据问题的不同,更新逻辑可能很简单,也可能很复杂。
如果您以编程方式破解和下载更新,您可以取消选中“发布”窗口中的更新选项,即应用程序不会由 ClickOnce 更新,而是会执行您编写的所有更新逻辑。在代码中,您可以添加启动屏幕并同步更新,或者添加一些“动态”,并使用以下提供的数据让用户了解更新的进度CheckForDetailedUpdate
method.
小样本:
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
bool isUpdated = tryUpdateApplication();
if (isUpdated)
{
Application.Restart();
}
else
{
Application.Run(new MainForm());
}
}
static bool tryUpdateApplication()
{
bool result = false;
try
{
UpdateCheckInfo info = ApplicationDeployment.CurrentDeployment.CheckForDetailedUpdate();
if (info.UpdateAvailable)
{
//Show what you want to show
ApplicationDeployment.CurrentDeployment.Update();
//Hide what you showed
result = true;
}
}
catch (Exception ex) //better to catch the specific exceptions
{
//some exception handling logic
}
return result;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)