Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Failed to initialize REPL environment #68

Open
mricher-git opened this issue Feb 7, 2024 · 8 comments
Open

Failed to initialize REPL environment #68

mricher-git opened this issue Feb 7, 2024 · 8 comments

Comments

@mricher-git
Copy link
Contributor

Getting the following issue in Railroader:
[RuntimeUnityEditor] [Warning] Failed to initialize REPL environment - The type initializer for 'Mono.CSharp.SkipVisibilityExt' threw an exception.

Seems https://github.com/5rog/Explorer has the same issue with mcs and commented out the constructor. I tried commented it out, REPL loads but then I get:

error CS0060: Inconsistent accessibility: base class RuntimeUnityEditor.Core.REPL.REPL' is less accessible than class <InteractiveExpressionClass 4>'

Unsure if the two are related.

@ManlyMarco
Copy link
Owner

Yes, the class in the error is specifically to fix accessibility issues like the one you've got.

@mricher-git
Copy link
Contributor Author

mricher-git commented Feb 8, 2024

Due to the issue we're having with Railroaders, I moved Mono.* MonoMod.* to Railroader_Data\Managed. That removed the error during REPL init regarding SkipVisibilityExt but surprisingly continues to complain about the inconsistent accessibility. If we can sort out why the .dll's aren't being resolved, I suspect this issue will fix itself.

Edit: can confirm if I copy all .dll's to Managed (Mono.*, MonoMod.*, RuntimeUnityEditor.Core.dll), REPL works fine.

@mricher-git
Copy link
Contributor Author

I have no idea what makes this tick, but I moved to a new PC and:
error CS0060: Inconsistent accessibility: base class RuntimeUnityEditor.Core.REPL.REPL' is less accessible than class <InteractiveExpressionClass 4>'

is back, but without the exception being thrown as mentioned in my first post. Placed all dlls in the Managed folder, same as before, but it still doesn't work.

[RuntimeUnityEditor] Version '5.3'. Loading.
[RuntimeUnityEditor] Active.
[Manager] FINISH. SUCCESSFUL LOADED 5/5 MODS.
[Manager] Spawning.
[RuntimeUnityEditor] Successfully initialized 14/14 features: CursorUnlocker, WireframeFeature, ContextMenu, Taskbar, MouseInspect, ReplWindow, ObjectViewWindow, ProfilerWindow, ObjectTreeViewer, Inspector, ClipboardWindow, ChangeHistoryWindow, DnSpyHelper, GizmoDrawer
[Manager] Checking updates.
[RuntimeUnityEditor] [UnityInput] Using LegacyInputSystem
[RuntimeUnityEditor] Full GameObject list refresh finished in 2ms
[RuntimeUnityEditor] Full GameObject list refresh finished in 0ms
[RuntimeUnityEditor] [REPL] Found 512 public namespaces

@ManlyMarco
Copy link
Owner

Did you try making RuntimeUnityEditor.Core.REPL.REPL public?

@mricher-git
Copy link
Contributor Author

Isn't it already?

namespace RuntimeUnityEditor.Core.REPL
{
    /// <summary>
    /// C# REPL environment. Everything in here can be called directly in the REPL console.
    /// </summary>
    public class REPL : InteractiveBase
    ```

@ManlyMarco
Copy link
Owner

Oh, that's right, no idea then. I don't think OS has any effect on it, the game must be set up differently.

@mricher-git
Copy link
Contributor Author

mricher-git commented Apr 11, 2024

In 5.3 UMM flavor there is both a RuntimeUnityEditor.UMM.dll and a RuntimeUnityEditor.Core.dll.

From dnSpy, the UMM dll:

namespace RuntimeUnityEditor.Core.REPL
{
	// Token: 0x0200002A RID: 42
	internal class REPL : InteractiveBase
	{

From the .Core.dll:

namespace RuntimeUnityEditor.Core.REPL
{
	/// <summary>
	/// C# REPL environment. Everything in here can be called directly in the REPL console.
	/// </summary>
	// Token: 0x0200001F RID: 31
	public class REPL : InteractiveBase
	{

Edit: I deleted the ILRepack.targets from the UMM folder and re-compiled, and now have no issues.
FYI: Seems latest UMM (0.27.14) solved the issue of not loading additional referenced DLLs from mod folder, so this workaround is no longer required anyway.

@ManlyMarco
Copy link
Owner

So this commit can be safely reverted now? 55252e7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants