适用于Windows应用程序的C#更新程序

时间:2010-07-22 12:29:51

标签: c# desktop-application multitasking

我为我的Windows应用程序开发了一个更新程序。它们是同一解决方案下的不同项目,它们作为不同的流程运行。当我运行应用程序时,它会在启动时检查更新(作为另一个进程)。当我点击更新按钮时,它会尝试将文件下载到安装位置。 (我在调试文件夹中使用.exe我不创建安装文件)一切正常但主应用程序(app.exe)无法覆盖,因为更新过程使用它。但在更新过程中我杀了app.exe,app.exe也来自任务管理器。我找不到任何东西,更新如何使用主app.exe。有谁知道更新如何使用主应用程序?我该怎么看?它在哪一行开始使用其他应用程序?

4 个答案:

答案 0 :(得分:1)

  1. 重命名app.exe
  2. 插入新app.exe
  3. 关闭正在运行的旧app.exe
  4. 启动新app.exe
  5. 检查重命名的app.exe(在新启动的app.exe中)
  6. 删除旧的,重命名的app.exe

答案 1 :(得分:0)

如果更新程序应用程序具有对主应用程序exe的引用,则会使其保持锁定状态。如果是这种情况,您可以从更新应用程序项目中删除对主应用程序的引用吗?这可能需要将一些代码直接移动到更新程序的源代码中。

答案 2 :(得分:0)

要找出谁参与您的流程,您应该开始ProcessExplorer。菜单栏中有一些间谍眼镜。只需点击它,看看哪个进程拥有您应用的句柄。

答案 3 :(得分:0)

你需要发明自己的吗?现有的解决方案可以帮助您实现这一目标。如果适合您的部署模型,Microsoft ClickOnce支持此功能。

快速谷歌搜索也出现了一些问题: