From 1af1fe45ca905d35c8b2e46bed634c392787d8ee Mon Sep 17 00:00:00 2001 From: Evil Factory <36804725+evilfactory@users.noreply.github.com> Date: Thu, 7 Jul 2022 10:36:38 -0300 Subject: [PATCH] potential fix for the RunConfig.xml being used by another process --- .../SharedSource/LuaCs/Cs/CsScriptLoader.cs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs index 7d817046b..9b6a55097 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs @@ -35,12 +35,16 @@ namespace Barotrauma private enum RunType { Standard, Forced, None }; private bool ShouldRun(ContentPackage cp, string path) { - if (!Directory.Exists(path + "CSharp")) return false; + if (!Directory.Exists(path + "CSharp")) + { + return false; + } var isEnabled = ContentPackageManager.EnabledPackages.All.Contains(cp); if (File.Exists(path + "CSharp/RunConfig.xml")) { - var doc = XDocument.Load(File.Open(path + "CSharp/RunConfig.xml", FileMode.Open, FileAccess.Read)); + Stream stream = File.Open(path + "CSharp/RunConfig.xml", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); + var doc = XDocument.Load(stream); var elems = doc.Root.Elements().ToArray(); var elem = elems.FirstOrDefault(e => e.Name.LocalName.Equals(LuaCsSetup.IsServer ? "Server" : (LuaCsSetup.IsClient ? "Client" : "None"), StringComparison.OrdinalIgnoreCase)); @@ -61,6 +65,8 @@ namespace Barotrauma return false; } } + + stream.Close(); } if (isEnabled)