Arcitectus / Sanderling

APIs and libraries to read information directly from the EVE Online game client.
https://forum.botlab.org
Apache License 2.0
258 stars 117 forks source link

alternate-ui 'From live game client process' mode does not work for me with the latest sanderling #84

Open KoukatsuMahoutsukai opened 1 year ago

KoukatsuMahoutsukai commented 1 year ago

Hello, first of all thanks for this wonderful library/repo Michael.

alternate-ui From live game client process mode does not work for me with the latest sanderling(09dacec88c063900cd8ee5911b357fce9e8e0241) paired with the latest elm-time release 2023-7-13 (b512ad944c286b14b6f23b6221ef8fe6ff25ffa1), although reading from file is working properly. getting an error as follows:

Failed to get IDs of the EVE Online client processes: BadStatus: 500 ({"SetupNotCompleteResponse":["Failed to create volatile process: System.Exception: Failed to setup the volatile process: System.Exception\r\n ---> System.NotSupportedException: Can't create a metadata reference to an assembly without location.\r\n at Microsoft.CodeAnalysis.MetadataReference.CreateFromAssemblyInternal(Assembly assembly, MetadataReferenceProperties properties, DocumentationProvider documentation)\r\n at Microsoft.CodeAnalysis.Scripting.Script.GetReferencesForCompilation(CommonMessageProvider messageProvider, DiagnosticBag diagnostics, MetadataReference languageRuntimeReferenceOpt)\r\n at Microsoft.CodeAnalysis.CSharp.Scripting.CSharpScriptCompiler.CreateSubmission(Script script)\r\n at Microsoft.CodeAnalysis.Scripting.Script.GetCompilation()\r\n at Microsoft.CodeAnalysis.Scripting.Script`1.GetExecutor(CancellationToken cancellationToken)\r\n at Microsoft.CodeAnalysis.Scripting.Script`1.RunAsync(Object globals, Func`2 catchException, CancellationToken cancellationToken)\r\n at Pine.VolatileProcessCSharp.RunScript(String script) in D:\\a\\elm-time\\elm-time\\implement\\elm-time\\Pine\\VolatileProcessCSharp.cs:line 47\r\n --- End of inner exception stack trace ---\r\n at Pine.VolatileProcessCSharp..ctor(Func`2 getFileFromHashSHA256, String csharpScriptCode, Object scriptGlobals) in D:\\a\\elm-time\\elm-time\\implement\\elm-time\\Pine\\VolatileProcessCSharp.cs:line 40\r\n at ElmTime.Platform.WebService.PublicAppState.PerformProcessTaskCreateVolatileProcess(CreateVolatileProcessStruct createVolatileProcess) in D:\\a\\elm-time\\elm-time\\implement\\elm-time\\Platform\\WebService\\PublicAppState.cs:line 466"]})

upon testing different versions/commits, rolling back the sanderling to april 25 commit (bfcc3eb8bf22f2aa4ca874e0e2298de3829e73e8) paired with elm-time release of 5-21 or earlier works no problem. latest sanderling paired with any elm-time release does not work for me.

TLDR: I think something on june 21 commit of sanderling or past the 5-21 release of elm-time broke the alternate-ui live reading? cant confirm if its a only me problem also.

Viir commented 1 year ago

Thank you for sharing your experience and the workaround!

I think something on june 21 commit of sanderling or past the 5-21 release of elm-time broke the alternate-ui live reading?

Agree, looks the same to me.

My current thesis is that the problem was caused by this change in the build: https://github.com/elm-time/elm-time/commit/3f4a2dc53a853cda7449fb671d1682b76654aa07

I think this part of the error message that you saw hints at the cause being switching away from the .NET extraction process on program startup:

Can't create a metadata reference to an assembly without location.

As a workaround, the latest version of the alternate UI live reading should work when you use the version v2023-05-21 of elm-time.exe, from https://github.com/elm-time/elm-time/releases/tag/v2023-05-21

Another workaround then is to use the build of elm-time.exe with "separate-assemblies". For example, here is that build variant from the latest release: https://github.com/elm-time/elm-time/releases/download/v2023-07-13/elm-time-separate-assemblies-b512ad944c286b14b6f23b6221ef8fe6ff25ffa1-win10-x64.zip