diff --git a/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/RoslynScriptCompiler.cs b/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/RoslynScriptCompiler.cs index d858ce3e..e1c2a866 100644 --- a/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/RoslynScriptCompiler.cs +++ b/src/ZB.MOM.WW.ScadaBridge.ScriptAnalysis/RoslynScriptCompiler.cs @@ -65,6 +65,7 @@ public static class RoslynScriptCompiler var options = ScriptOptions.Default .WithReferences(references) + .WithMetadataResolver(CachingScriptMetadataResolver.Instance) .WithImports(imports); var script = CSharpScript.Create(code, options, globalsType); diff --git a/tests/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.Tests/RoslynScriptCompilerTests.cs b/tests/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.Tests/RoslynScriptCompilerTests.cs index c22a18ba..90b2bcfb 100644 --- a/tests/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.Tests/RoslynScriptCompilerTests.cs +++ b/tests/ZB.MOM.WW.ScadaBridge.ScriptAnalysis.Tests/RoslynScriptCompilerTests.cs @@ -138,4 +138,11 @@ public class RoslynScriptCompilerTests var diagnostics = RoslynScriptCompiler.Compile(code, typeof(ScriptCompileSurface)); Assert.Empty(diagnostics); } + + [Fact] + public void Compile_TwiceWithSharedResolver_StillCompilesCleanly() + { + Assert.Empty(RoslynScriptCompiler.Compile("return 1 + 1;")); + Assert.Empty(RoslynScriptCompiler.Compile("return 2 + 2;")); + } }