我知道我可以使用Updater.exe& MainProgram.exe但我希望将我的版本保存在一个EXE文件中。
我可以从内存运行updater.exe(updater.exe将包含在mainprogram.exe中)然后关闭mainprogram.exe并保持更新程序在新线程中工作(它将更新mainprogram.exe)吗?有可能吗?
还是有其他解决方案,我可以保留一个发布的EXE文件吗?
答案 0 :(得分:1)
老实说,从未做过这样的事情,但可以就主题分享一些想法:
CodeDome
在运行时编译程序集Updater.exe
并执行它(不喜欢这个)Updater.exe必须非常轻量级+它让你有机会在决定更改更新程序的时候(原因可能有数百万)你只需重新编译它并将它的二进制文件放入共享文件夹,而不会影响主设置。
我个人不喜欢合并更新程序与主要设置。
希望这有帮助。
问候。
答案 1 :(得分:1)
将updater.exe作为资源包含在您的应用中,然后将其保存到临时文件中并运行该文件。
答案 2 :(得分:0)
首先,失去了插入并更新内存中“exes”的想法。
试试这个: 如果有更新版本的程序,请从主应用程序检查更新服务器。如果有,请下载新的exe,下载或创建一个简单的批处理文件,删除当前的exe并重命名新的exe文件,然后分叉并执行批处理文件,然后退出。批处理文件将等待片刻,重命名exe,可能启动新的,并自行删除。
答案 3 :(得分:0)
我已经看到这解决了2种方法,虽然我确信还有更多
两者都为我们工作,但我从未完全满意#2,因为它要求用户按一个键。也许你可以添加一个延迟。