假设我有一个名为mainprogram.exe的可执行文件,另一个名为Update.exe。我想要实现的是:当 Update.exe 启动时,它将 mainprogram.exe 替换为 C:\Program Files\MyProgram\mainprogram.exe。重点是在 Update.exe 中包含需要替换的可执行文件,这样它将成为一个一体化的解决方案。
另请注意,我无法创建从互联网下载 mainprogram.exe 的 Update.exe,它必须已包含在 Update.exe 中。
最佳答案
在建筑物中:
- 复制 UPDATE.EXE 以作为资源嵌入到 MAIN.EXE 中
运行时(更新时间)
- 将 UPDATE.EXE 从资源中删除到硬盘
- 使用适当的参数(命令行参数,根据情况而定)启动 UPDATE.EXE
- 让 UPDATE.EXE 尝试删除 MAIN.EXE 将创建的公共(public)文件并使其保持打开状态
- 当 MAIN.EXE 退出时,文件句柄将被释放,允许 UPDATE.EXE 继续执行其应该执行的操作 - 用新版本替换 MAIN.EXE
- 从 UPDATE.EXE 启动 MAIN.EXE
- (可选)从 MAIN.EXE 中删除 UPDATE.EXE,因为您暂时不需要它。
关于c# - 在一个exe中包含另一个exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7713763/