static void Main(string[] args)
{
Script script = new Script();
Console.WriteLine("开始执行,当前版本:" + Script.Version);
script.LoadLibrary();
script.PushAssembly(typeof(Program).Assembly);
if (Directory.Exists(CurrentDirectory + "/Library"))
{
string[] files = Directory.GetFiles(CurrentDirectory + "/Library", "*.dll", SearchOption.AllDirectories);
foreach (var file in files)
{
try {
script.PushAssembly(Assembly.LoadFile(file));
Console.WriteLine("导入文件[" + file + "]成功");
} catch (System.Exception ex) {
Console.WriteLine("导入文件[" + file + "]失败 " + ex.ToString());
}
}
}
if (Directory.Exists(CurrentDirectory + "/Program")) {
try {
script.PushAssembly(CompilerFile(CurrentDirectory + "/Program"));
} catch (System.Exception ex) {
Console.WriteLine("编译文件失败 " + ex.ToString());
}
}
if (args.Length >= 1) {
try {
Stopwatch watch = Stopwatch.StartNew();
if (!script.HasValue("searchpath"))
script.SetObject("searchpath", Path.GetDirectoryName(args[0]));
Console.WriteLine("返回值为:" + script.LoadFile(args[0]));
Console.WriteLine("运行时间:" + watch.ElapsedMilliseconds + " ms");
} catch (System.Exception ex) {
Console.WriteLine(script.GetStackInfo());
Console.WriteLine(ex.ToString());
}
Console.ReadKey();
} else {
while (true)
{
try {
string str = Console.ReadLine();
if (str == "exit") {
break;
} else if (str == "clear") {
Console.Clear();
} else if (str == "version") {
Console.WriteLine(Script.Version);
} else {
script.LoadString(str);
}
} catch (System.Exception ex) {
Console.WriteLine(script.GetStackInfo());
Console.WriteLine(ex.ToString());
}
}
}
}