refactor(srp): unify engine managed assembly discovery

This commit is contained in:
2026-04-19 05:17:42 +08:00
parent 5fa209ab5d
commit 11a03a4b46
11 changed files with 458 additions and 71 deletions

View File

@@ -121,10 +121,6 @@ MonoScriptRuntime::Settings CreateMonoSettings() {
settings.assemblyDirectory = XCENGINE_TEST_MANAGED_OUTPUT_DIR;
settings.corlibDirectory = XCENGINE_TEST_MANAGED_OUTPUT_DIR;
settings.coreAssemblyPath = XCENGINE_TEST_SCRIPT_CORE_DLL;
settings.engineAssemblies.push_back(
MonoScriptRuntime::ManagedAssemblyDescriptor{
"XCEngine.RenderPipelines.Universal",
XCENGINE_TEST_RENDER_PIPELINES_UNIVERSAL_DLL});
settings.appAssemblyPath = XCENGINE_TEST_GAME_SCRIPTS_DLL;
return settings;
}
@@ -139,7 +135,14 @@ protected:
XCEngine::Resources::ResourceManager::Get().Shutdown();
XCEngine::Rendering::Pipelines::ClearConfiguredManagedRenderPipelineAssetDescriptor();
runtime = std::make_unique<MonoScriptRuntime>(CreateMonoSettings());
std::string engineAssemblyError;
MonoScriptRuntime::Settings settings = CreateMonoSettings();
ASSERT_TRUE(
MonoScriptRuntime::DiscoverEngineAssemblies(
settings,
&engineAssemblyError))
<< engineAssemblyError;
runtime = std::make_unique<MonoScriptRuntime>(std::move(settings));
ASSERT_TRUE(runtime->Initialize()) << runtime->GetLastError();
engine->SetRuntime(runtime.get());