Derpy, You Broke the InstalltionFunctionThread Again...

Started by Midimistro, August 10, 2016, 07:15:10 PM

Previous topic - Next topic

0 Members and 3 Guests are viewing this topic.

Midimistro

This Post is just to help those who experience the "InstallationFunctionThread Error" caused by path usage while installing MLK.

Before anything, you should know that I installed the entire game on my Hard Disk and initially had both the Installer and in the same directory path.

The issue is that the Windows C# installation program does not want to interfere with the same path call twice for two different causes. In other words, this error only occurs when the Web Installer is in the same path as the location you chose to install the game. What happens is that the InstallationFunctionThread is already calling the installer from "/MLKInstallationExampleFolder", which is also the same location you selected to install the packages. Because the installation program wasn't designed to install things using two call instances of the same path, the program fails and spits out an error.

The fix is simple: just move the installer out of the installation location...

Should this issue technically happen if the installer was properly programmed? No.

However, since this is a community project, I can understand the limits of such a task. Alternatively, this could be a potential bug fix for the next update.

rainbowderpy

sourcecode is available at https://github.com/MyLittleKaraoke/MLK_WebInstall
if you have some free time, please feel free to fix the issue  ;)

Dex

To add some insight, the exception is happenning on TarArchive extraction (line 346 in Form1.cs), since it's trying to place the WebInstall executable in the installation folder, not realizing it's already there and running, therefore getting IOException (The process cannot access the file because it's being used by another process).

rainbowderpy

Thanks Dexeus! So this is not a threading issue but rather caused by the installer not being able to overwrite itself because of filelocking. This is sort of the proper reaction for the inner issue, but should be handled differently by the installer.
Not sure jet how to handle this the best way.