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

@@ -49,12 +49,23 @@ void Application::InitializeScriptingRuntime(const std::string& projectPath) {
settings.assemblyDirectory = assemblyDirectory;
settings.corlibDirectory = assemblyDirectory;
settings.coreAssemblyPath = assemblyDirectory / L"XCEngine.ScriptCore.dll";
settings.engineAssemblies.push_back(
::XCEngine::Scripting::MonoScriptRuntime::ManagedAssemblyDescriptor{
"XCEngine.RenderPipelines.Universal",
assemblyDirectory / L"XCEngine.RenderPipelines.Universal.dll"});
settings.appAssemblyPath = assemblyDirectory / L"GameScripts.dll";
std::string assemblyDiscoveryError;
if (!::XCEngine::Scripting::MonoScriptRuntime::DiscoverEngineAssemblies(
settings,
&assemblyDiscoveryError)) {
m_scriptRuntimeStatus.statusMessage =
"Failed to discover engine managed assemblies: " +
assemblyDiscoveryError;
logger.Warning(
Debug::LogCategory::Scripting,
m_scriptRuntimeStatus.statusMessage.c_str());
::XCEngine::Scripting::ScriptEngine::Get().SetRuntime(nullptr);
ProjectGraphicsSettings::ApplyCurrentSelection(projectPath);
return;
}
std::error_code ec;
const bool hasCoreAssembly = fs::exists(settings.coreAssemblyPath, ec);
ec.clear();