我知道,我能有Updater.exe & MainProgram.exe但我想保持我释放一个EXE文件。c#应用程序更新程序从内存运行?
我可以从内存中运行updater.exe(updater.exe将包含在mainprogram.exe中),然后关闭mainprogram.exe并让更新程序在新线程中工作(它将更新mainprogram.exe)?可能吗?
或者有没有其他的解决方案,我可以只保留一个单独发布的EXE文件?
我知道,我能有Updater.exe & MainProgram.exe但我想保持我释放一个EXE文件。c#应用程序更新程序从内存运行?
我可以从内存中运行updater.exe(updater.exe将包含在mainprogram.exe中),然后关闭mainprogram.exe并让更新程序在新线程中工作(它将更新mainprogram.exe)?可能吗?
或者有没有其他的解决方案,我可以只保留一个单独发布的EXE文件?
附上updater.exe为您的应用程序资源,然后将其保存到一个临时文件并运行。
决不做这样的东西,说实话,但可以分享一些想法上的主题:
CodeDome
在运行时编译的程序集Updater.exe
并执行它(不喜欢这个)Updater.exe必须非常轻巧+它可以让你在你决定改变更新了一下(对百万个理由,你可以有),您只需重新编译它,并把它的二进制到共享文件夹,而不会影响主机会建立。
我个人不喜欢合并更新与主设置。
希望这会有所帮助。
问候。
首先,失去与嵌入和更新记忆“前男友”多管闲事的想法。
试试这个: 从主应用程序检查更新服务器是否有可用的程序的新版本。如果有,请下载新的exe文件,下载或创建一个简单的批处理文件,删除当前的exe文件并重命名新文件,然后分叉并执行批处理文件,然后退出。该批处理文件将稍等片刻,重命名该exe文件,也许启动新文件并删除它自己。
我已经看到了这解决了2种方式,但我相信有很多更
两者都为我们工作,但我从来没有完全满意#2,因为它需要用户按下一个键。也许你可以加入延迟。
+1为第二个想法! – IDWMaster