2009-07-22 114 views

回答

6

通常,应用程序会在启动时注意到有更新可用,然后询问用户是否可以更新。然后他们开始更新过程并退出。更新过程替换文件,然后启动新版本。

一些案件您可以用更新一些件应用程序的不重启就完事了 - 但增加的复杂性是显著,坦率地说,最好不要在的情况下99%的试试看,IMO 。

当然,你还没有说过你在写什么样的应用程序 - 如果你可以提供更多的信息,这将有所帮助。

3

应用程序在更新之前需要关闭,因为更新应用程序通常意味着用它们的新版本替换可执行文件(.exe,.dlls等),并且这不能在没有关闭应用程序的情况下完成。

作为Jon said,在一些的情况下,您可以升级应用程序而不关闭它。但是,这不可取,因为它可能会导致更新程序失败,并且整个更新可能会回滚。

更新程序可以是另一个的可执行文件,将首先关闭主应用程序,然后下载更新,应用它们,启动主应用程序,并退出(这方面的一个例子是SkypeFireFox等)

0

你可以将后端分离为单独的进程/模块,并通过重新启动后端来更新后端,而无需用户意识到它。

更新前端会有点棘手,但如有必要可以避免或延迟。

0

一个很好而干净的方法来实现这一点将使用动态插件。 你可以编写基于插件的应用程序。当需要更新时,卸载需要更新的插件,更新.dll文件并将其加载回应用程序。然而,让用户看不到这可能是一项艰巨的工作,因此它在很大程度上取决于您的设计和编码。

0

我记得InTime有能力交换exe的生活,但是必须仔细编码。我知道这是可能的,但正如Jon Skeet所说,你最好不要尝试。

除非您正在进行某种自动化或非常严重的事情......即使如此,您应该考虑进行故障转移,以便在需要时关闭/重新启动。

0

如果你有某种骨架框架启动你的应用程序和dll,你可以看看CreateDomain。尽管如此,它仍然需要认真的设计。祝你好运!

相关问题