Hi !
Thanks, it looks like one step forward.
But it's so typical of me to shorten code - so I've tried to restart code using recursive function call to scripting library itself - like this:
using CSScriptLibrary;
using System;
using System.Windows.Forms;
using System.Linq; //.Cast
using System.Diagnostics; //StackFrame
using System.Reflection;
class Script
{
[STAThread]
static public void Main(string[] args)
{
StackFrame sf = new System.Diagnostics.StackTrace(true).GetFrame(0);
if( sf.GetFileName() == null )
{
String fileName = Assembly.GetExecutingAssembly()
.GetCustomAttributes(typeof(AssemblyDescriptionAttribute), true)
.Cast<System.Reflection.AssemblyDescriptionAttribute>().First().Description;
Console.WriteLine("Restarting '" + fileName + "'");
var Method = CSScript.Load(fileName, null, true).GetStaticMethod();
Method();
}
Console.WriteLine( sf.GetFileName() + "(" + sf.GetFileLineNumber() + "): Stack frame available" );
}
}
Concludes in exception:
Restarting 'C:\Projects\TestSuite\css\host.cs'
Error: Specified file could not be executed.
System.UnauthorizedAccessException: Access to the path 'C:\Users\<login>\AppData\Local\Temp\CSSCRIPT\Cache\1818316916\host.cs.compiled' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.File.Delete(String path)
at csscript.CSExecutor.Compile(String scriptFileName)
at csscript.CSExecutor.Compile(String scriptFile, String assemblyFile, Boolean debugBuild)
at CSScriptLibrary.CSScript.LoadWithConfig(String scriptFile, String assemblyFile, Boolean debugBuild, Settings scriptSettings, String compilerOptions, String[] refAssemblies)
at CSScriptLibrary.CSScript.Load(String scriptFile, String assemblyFile, Boolean debugBuild, String[] refAssemblies)
at Script.Main(String[] args)
I could help you fixing it if you want, you need to tell me bit more details. :-)