RedNoodle/MCForge-Vanilla — comment on commit 4af602559dd1ad4de31f59be08ed3cba09f93f47
File: GUI/Program.cs line 535
By AnthonyANI:

Well I've created the new updater recently that is inside MCForge. MCForge deletes the changelog and any left-behind update files, redownloads them, extracts Updater.exe, attempts to run Updater.exe, and then MCForge closes. The Updater.exe then does what your script does. It checks for the .update files and overwrites as necessary. Once all files are updated, Updater.exe attempts to start MCForge, and the Updater.exe closes. MCForge then deletes Updater.exe as well as any left over or unused files that are no longer needed before starting the dll. This method works entirely fine in Windows. However in mono we have an issue with processes. When MCForge closes, so does the process(es) it launched..which in this case is the Updater.exe causing the update to fail and the mono user to be stranded until they manually update and start MCForge. This happens while restarting on mono as well, MCForge writes a restart script, attempts to launch it, but the restart script can't finish because MCForge closes taking the running script with it.