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

发布于 2024-09-10 15:05:38 字数 293 浏览 5 评论 0原文

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

i developed an updater application for my windows app. They are different projects under the same solution and they run as different processes. when i run the app it checks for updates at startup (as another process). when i click update button it tries to download files to the installation location. (i am using the .exe in debug folder i don't create setup file) Everything works fine but the main application (app.exe) can't be overwritten because it is used by update process. but in update process i kill app.exe and app.exe goes from task manager too. i couldn't find anything, how main app.exe is used by update. has anyone any idea how update uses main app ? how can i watch it? in which line it starts using the other app?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

樱花坊 2024-09-17 15:05:38
  1. 重命名 app.exe
  2. 插入新 app.exe
  3. 关闭正在运行的旧 app.exe
  4. 启动新 app.exe
  5. 检查重命名的 app.exe(在新启动的 app.exe 中)
  6. 删除旧的、重命名的 app.exe
  1. Rename app.exe
  2. Insert new app.exe
  3. Close running, old app.exe
  4. Start new app.exe
  5. Check for renamed app.exe (in newly started app.exe)
  6. Delete old, renamed app.exe
如果没有你 2024-09-17 15:05:38

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

If the updater app has a reference to the main app exe, it will keep it locked. If that's the case, can you remove the reference to the main app from the update app project? This may need moving some code directly into the updater's source.

森林很绿却致人迷途 2024-09-17 15:05:38

要了解谁在处理您的流程,您应该启动 ProcessExplorer 。菜单栏中有一些间谍眼镜。只需单击它即可查看哪个进程持有您的应用程序的句柄。

To find out who has a hand on your process you should start ProcessExplorer. There are some spy glasses in the menu bar. Just click on it and see which process holds a handle to your app.

女皇必胜 2024-09-17 15:05:38

您需要自己发明吗?您可以利用现有的解决方案来实现此目的。如果 Microsoft ClickOnce 适合您的部署模型,则它支持此功能。

快速谷歌搜索也显示了一些内容:

  • http://csautoupdater.sourceforge.net/
  • < a href="http://www.codeproject.com/KB/vb/Auto_Update_Revisited.aspx" rel="nofollow noreferrer">http://www.codeproject.com/KB/vb/Auto_Update_Revisited.aspx

Do you need to invent your own? There are existing solutions that you may be able to leverage that already do this. Microsoft ClickOnce supports this if it fits your deployment model.

A quick google search turns up a few things as well:

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文