Fix scripting AssemblyLoadContext not getting unloaded

# Conflicts:
#	Source/Engine/Engine/NativeInterop.Managed.cs
This commit is contained in:
2024-04-22 00:11:24 +03:00
parent c16ec763c2
commit 25036be05f
8 changed files with 156 additions and 55 deletions

View File

@@ -175,6 +175,8 @@ bool ScriptingService::Init()
return true;
}
MCore::CreateScriptingAssemblyLoadContext();
// Cache root domain
_rootDomain = MCore::GetRootDomain();
@@ -703,7 +705,8 @@ void Scripting::Reload(bool canTriggerSceneReload)
_hasGameModulesLoaded = false;
// Release and create a new assembly load context for user assemblies
MCore::ReloadScriptingAssemblyLoadContext();
MCore::UnloadScriptingAssemblyLoadContext();
MCore::CreateScriptingAssemblyLoadContext();
// Give GC a try to cleanup old user objects and the other mess
MCore::GC::Collect();