LCARSx32 / Main-LCARS-x32-Project

http://www.lcarsx32.com
Other
27 stars 10 forks source link

0.7.2 Incremental Build Installation and Set-Up Issue #10

Closed HCurrence closed 5 years ago

HCurrence commented 5 years ago

Hello!

I am trying to set-up and install LCARS x32 on my laptop running Windows 10 with .net framework 4.7.2. I tried to register an account on lcarsx32.org to post this there, but I never recieved a registration email.

The first problem I am running into is that there doesn't seem to be any up-to-date direction on how to set-up the release. I started following the reddit post here with the provided video, but quickly became confused due to the files being provided as a GitHub release instead of an installer. I went ahead and found runInstallScript in the build release, and ran it with the following result.

lcars net script error (Detailed error message added at the bottom.)

Hitting "continue", the installer GUI pops up, stays for about 3 seconds, then closes with nothing I can find running in the background.

I'm really just wondering what script.txt it's trying to find. When I go ahead and run LCARSMain, I get the same bug as issue #9 from time to time. I am really excited to work on this and have it working in return!

Error message > See the end of this message for details on invoking > just-in-time (JIT) debugging instead of this dialog box. > > ************** Exception Text ************** > System.IO.FileNotFoundException: Could not find file 'C:\Users\Haley\AppData\Local\Temp\script.txt'. > File name: 'C:\Users\Haley\AppData\Local\Temp\script.txt' > at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) > at System.IO.FileStream.Init(String path, FileMode mode, FileAccess access, Int32 rights, Boolean useRights, FileShare share, Int32 bufferSize, FileOptions options, SECURITY_ATTRIBUTES secAttrs, String msgPath, Boolean bFromProxy) > at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options, String msgPath, Boolean bFromProxy) > at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options) > at System.IO.StreamReader..ctor(String path, Encoding encoding, Boolean detectEncodingFromByteOrderMarks, Int32 bufferSize) > at System.IO.StreamReader..ctor(String path, Boolean detectEncodingFromByteOrderMarks) > at runInstallScript.Installing.Installing_Load(Object sender, EventArgs e) in C:\Users\Tim Hughes\LCARS x32\Main LCARS x32 Project\runInstallScript\runInstallScript\Installing.vb:line 75 > at System.EventHandler.Invoke(Object sender, EventArgs e) > at System.Windows.Forms.Form.OnLoad(EventArgs e) > at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible) > at System.Windows.Forms.Control.CreateControl() > at System.Windows.Forms.Control.WmShowWindow(Message& m) > at System.Windows.Forms.Control.WndProc(Message& m) > at runInstallScript.Installing.WndProc(Message& m) in C:\Users\Tim Hughes\LCARS x32\Main LCARS x32 Project\runInstallScript\runInstallScript\Installing.vb:line 55 > at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) > at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) > > > ************** Loaded Assemblies ************** > mscorlib > Assembly Version: 2.0.0.0 > Win32 Version: 2.0.50727.8937 (WinRelRS4.050727-8900) > CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll > > runInstallScript > Assembly Version: 0.6.0.0 > Win32 Version: 0.6.0.0 > CodeBase: file:///C:/Users/Haley/Desktop/LCARS_x32_0_7_2/runInstallScript.exe > > Microsoft.VisualBasic > Assembly Version: 8.0.0.0 > Win32 Version: 8.0.50727.8922 (WinRelRS4.050727-8900) > CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll > > System.Windows.Forms > Assembly Version: 2.0.0.0 > Win32 Version: 2.0.50727.8922 (WinRelRS4.050727-8900) > CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll > > System > Assembly Version: 2.0.0.0 > Win32 Version: 2.0.50727.8934 (WinRelRS4.050727-8900) > CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll > > System.Drawing > Assembly Version: 2.0.0.0 > Win32 Version: 2.0.50727.8922 (WinRelRS4.050727-8900) > CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll > > Accessibility > Assembly Version: 2.0.0.0 > Win32 Version: 2.0.50727.8922 (WinRelRS4.050727-8900) > CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Accessibility/2.0.0.0__b03f5f7f11d50a3a/Accessibility.dll > > System.Runtime.Remoting > Assembly Version: 2.0.0.0 > Win32 Version: 2.0.50727.8922 (WinRelRS4.050727-8900) > CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll > > > ************** JIT Debugging ************** > To enable just-in-time (JIT) debugging, the .config file for this > application or computer (machine.config) must have the > jitDebugging value set in the system.windows.forms section. > The application must also be compiled with debugging > enabled. > > For example: > > > > > > When JIT debugging is enabled, any unhandled exception > will be sent to the JIT debugger registered on the computer > rather than be handled by this dialog box. >
Surak256 commented 5 years ago

Setting up the release

All that the installer ever did was install the font, copy everything in the .zip release to a folder in Program Files, and create a shortcut to LCARSmain.exe. To install the .zip that is distributed on GitHub, just extract the files to a convenient location, install LCARS.ttf, and run LCARSmain.exe.

I'm aware that issue #9 is still not fixed. Microsoft keeps changing things with the window manager in Windows 10, and it's caused bugs in everything from LCARS to Google Chrome. I'm working on a solution, but haven't had much time in the last few months. (Currently, I can get it to work on one monitor in Windows 10, but not multiple monitors or any other version of Windows.)

runInstallScript

Short answer, runInstallScript is a component of the updater and isn't designed to run from the install folder. Specifically, it is a way for me to get around being unable to update an executable or dll files it depends on while that executable is running. LCARS supports differential updates at a file level (although this hasn't really been used much) and the install script is an essential part of that.

Specifically, the sequence of events is:

  1. LCARSUpdate checks the update server(s) in random order.
  2. The first server to respond gives a list of the files required to install the current version and what needs to be done with them.
  3. LCARSUpdate downloads those files to the temp directory after prompting the user. (No large unexpected downloads when I was still on dial-up) Files are checked for integrity.
  4. LCARSUpdate writes an install script saying what to do with those files. (where to extract, what to name them, etc.)
  5. LCARSUpdate copies runInstallScript to the temp directory, starts it, and shuts down LCARS.
  6. runInstallScript waits for LCARS to close, then executes the script to upgrade to the latest version
  7. runInstallScript cleans up the downloaded files.
  8. runInstallScript restarts LCARS, then exits.
  9. LCARSmain removes all remaining temporary files including the copy of runInstallScript.

The actual install script's format is somewhat documented in this file. Basically it's a long, complicated way of doing things that was created because I didn't know of a better option at the time. It also should probably be replaced with something more efficient.

Surak256 commented 5 years ago

I edited your comment to put the error message in a collapsible panel to make it easier to read. No other changes.