From 9b7875d904456c34c3698d7fc569078f99ed5187 Mon Sep 17 00:00:00 2001 From: Roy Ben Shabat Date: Sun, 19 Apr 2020 23:12:56 +0300 Subject: Scripting refactoring. --- .../RoslynTest/ConsoleApp8/ConsoleApp8/Program.cs | 22 +++++++++++++++++++++- .../RoslynTest/ConsoleApp8/ConsoleApp8/main.csx | 2 +- 2 files changed, 22 insertions(+), 2 deletions(-) (limited to 'Software/Experiments') diff --git a/Software/Experiments/RoslynTest/ConsoleApp8/ConsoleApp8/Program.cs b/Software/Experiments/RoslynTest/ConsoleApp8/ConsoleApp8/Program.cs index 5067058c8..2b95ea2c1 100644 --- a/Software/Experiments/RoslynTest/ConsoleApp8/ConsoleApp8/Program.cs +++ b/Software/Experiments/RoslynTest/ConsoleApp8/ConsoleApp8/Program.cs @@ -27,9 +27,11 @@ namespace ConsoleApp8 static void Main(string[] args) { + String startPath = System.Windows.Forms.Application.StartupPath; + var scriptOptions = ScriptOptions.Default. - WithFilePath(System.Windows.Forms.Application.StartupPath). + WithFilePath(startPath). WithReferences(new Assembly[] { typeof(System.Windows.Forms.Form).Assembly, typeof(Program).Assembly }); @@ -37,6 +39,24 @@ namespace ConsoleApp8 String script = File.ReadAllText("main.csx"); + foreach (var match in Regex.Matches(script, "#load \".+\"").OfType()) + { + String line = match.ToString(); + var pathMatch = Regex.Match(line, "(?<=\")(.*?)(?=\")"); + if (pathMatch.Success) + { + String path = pathMatch.ToString(); + + if (!Path.IsPathRooted(path)) + { + StringBuilder builder = new StringBuilder(script); + builder.Insert(match.Index + pathMatch.Index, Path.GetFullPath(startPath + "\\")); + script = builder.ToString(); + } + } + } + + var s = CSharpScript.Create(script, scriptOptions); var compileResult = s.Compile(); diff --git a/Software/Experiments/RoslynTest/ConsoleApp8/ConsoleApp8/main.csx b/Software/Experiments/RoslynTest/ConsoleApp8/ConsoleApp8/main.csx index f0b973033..61d086068 100644 --- a/Software/Experiments/RoslynTest/ConsoleApp8/ConsoleApp8/main.csx +++ b/Software/Experiments/RoslynTest/ConsoleApp8/ConsoleApp8/main.csx @@ -1,4 +1,4 @@ -#load "C:\Users\Roy\source\repos\ConsoleApp8\ConsoleApp8\bin\Debug\lib.csx" +#load "lib.csx" using System; using System.Collections.Generic; -- cgit v1.3.1