c# - 在一个exe中包含另一个exe

标签 c# .net file

假设我有一个名为ma​​inprogram.exe的可执行文件,另一个名为Update.exe。我想要实现的是:当 Update.exe 启动时,它将 mainprogram.exe 替换为 C:\Program Files\MyProgram\mainprogram.exe。重点是在 Update.exe 中包含需要替换的可执行文件,这样它将成为一个一体化的解决方案。

另请注意,我无法创建从互联网下载 mainprogram.exe 的 Update.exe,它必须已包含在 Update.exe 中。

最佳答案

在建筑物中:

  1. 复制 UPDATE.EXE 以作为资源嵌入到 MAIN.EXE 中

运行时(更新时间)

  1. 将 UPDATE.EXE 从资源中删除到硬盘
  2. 使用适当的参数(命令行参数,根据情况而定)启动 UPDATE.EXE
  3. 让 UPDATE.EXE 尝试删除 MAIN.EXE 将创建的公共(public)文件并使其保持打开状态
  4. 当 MAIN.EXE 退出时,文件句柄将被释放,允许 UPDATE.EXE 继续执行其应该执行的操作 - 用新版本替换 MAIN.EXE
  5. 从 UPDATE.EXE 启动 MAIN.EXE
  6. (可选)从 MAIN.EXE 中删除 UPDATE.EXE,因为您暂时不需要它。

关于c# - 在一个exe中包含另一个exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7713763/

相关文章:

c# - IQuery NHibernate - 它必须是一个列表吗?

将文本文件中的 double 据复制到 C 中的数组中

Java - 无法读取 ØÖ(特殊字符)并打印它

c# - 我如何从 asp.net 页面运行任何 win.exe?

c# - 启动画面 IOException

c# - Xamarin 表单 - 如何禁用 MasterDetailPage 菜单按钮

windows - 文件存在和不存在的奇怪情况

c# - 隐藏查询字符串 MVC3 -ASP.NET

.net - Chromium-Edge HTML 渲染器是否有 WinForms 控件?

c# - XML 签名适用于随机 RSA key ,但不适用于证书中的 key