更新C#应用程序替换.exe文件

时间:2014-04-06 08:20:27

标签: c# web-services download webserver exe

我已经设法让我的应用程序在我的服务器上检查更新并使用WebService,它将查看是否有任何更新。但我现在面临的真正问题是,我不知道如何下载我的应用程序的.exe的更新版本,并替换我正在运行的当前版本。

总之,我需要知道如何下载我的应用程序的.exe的更新版本,并替换我正在运行的当前版本。

2 个答案:

答案 0 :(得分:4)

实际上,您需要创建一个单独的进程来处理更新步骤。我曾经开发过一个能够从Web服务器接收更新的桌面应用程序,我通过创建一个角色作为主应用程序主要入口点的不同进程来实现这一点。

它启动主应用程序进程,同时继续运行以检查更新。然后,如果有任何可用的更新,它会将它们下载到临时文件夹,之后它会在关闭之前通知主应用程序,然后它会提交新的更新并重新启动主应用程序。

但是如果你想坚持使用一个可执行文件和一个进程。我猜你在运行操作系统本身不允许的情况下,无法替换任何可执行文件。

答案 1 :(得分:0)

实际上有办法。我几年前就发现了它。

您无法删除当前正在执行的.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()

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