更新C#应用程序替换.exe文件(Update C# application replace .ex

2019-10-19 19:05发布

我设法让我的应用程序检查更新与WebService我的服务器上,它会查看是否有更新,在那里进行。 但我面对现在真正的问题是,我不知道如何下载新版本.exe我的应用程序,并取代目前我跑。

最后,我需要知道如何下载新版本.exe我的应用程序,并取代目前我跑。

Answer 1:

那么实际上你需要创建一个单独的进程来处理更新步骤。 我曾经开发了一个桌面应用程序与接收更新形成一个Web服务器的能力,而我做了通过创建角色为主要切入点,主要应用不同的工艺。

它启动主应用程序,同时它保持运行,以检查更新。 然后,如果有任何更新它下载到临时文件夹后,它关闭它,然后它提交新的更新,并再次重新启动主应用程序之前通知的主要应用。

但是,如果你想坚持一个可执行文件和一个过程。 我想这是运行不是由操作系统本身允许的,而你不能取代任何可执行文件。



Answer 2:

你需要创建一个单独的引导应用程序来为你做的工作,否则应用程序与运行这样的操作系统会阻止您覆盖它。



Answer 3:

那么实际上有办法。 我几年前发现的。

你不能删除当前执行的.exe程序文件。 但是,您可以移动。

所以,我从我的Web服务器的更新文件下载到/updates/myprogram.exe

然后,我1)File.Delete以往任何myprogram.bak文件2)File.Move的myprogram.exe到myprogram.bak。 3)File.Copy的/updates/myprogram.exe到/myprogram.exe位置。 4)询问用户是否要重新启动,调用Application.Restart()

瞧。 问题主程序解决。 无需启动程序。



文章来源: Update C# application replace .exe file