예제 #1
0
            public void Run(string[] args, string[] strReferenceAssembliesToAdd)
            {
                if (args.Length < 1)
                {
                    ShowUsage();
                    return;
                }

                fileName = args[0];

                if (!File.Exists(fileName))
                {
                    ShowErrorMessage("FileDoesnotExist (from resource):" + args[0]);
                    return;
                }

                //Create new argument array removing the file name
                string[] newargs = new String[args.Length - 1];
                Array.Copy(args, 1, newargs, 0, args.Length - 1);

                CompileAndExecuteRoutine asyncDelegate = new CompileAndExecuteRoutine(this.CompileAndExecute);
                IAsyncResult             result        = asyncDelegate.BeginInvoke(fileName, newargs, strReferenceAssembliesToAdd, this, null, null);
            }
예제 #2
0
        protected void Run(string[] args, string[] filesToEmbed)
        {
            Slyce.Common.Utility.CheckForNulls(new object[] { args, filesToEmbed }, new[] { "args", "filesToEmbed" });
            fileNames = args;
            var codeFiles   = new string[fileNames.Length - 2];
            int fileCounter = 0;

            foreach (string fileName in fileNames)
            {
                if (fileName.IndexOf("=") < 0)
                {
                    if (!File.Exists(fileName))
                    {
                        ShowErrorMessageFromResource("FileDoesnotExist", args[0]);
                        return;
                    }
                    codeFiles[fileCounter] = fileName;
                    fileCounter++;
                }
            }

            //			//Create new argument array removing the file name
            var newargs = new String[args.Length - 1];

            //string[] newargs = new String[1];
            //newargs[0] = outputFileType;
            Array.Copy(args, 1, newargs, 0, args.Length - 1);

            var          asyncDelegate = new CompileAndExecuteRoutine(CompileAndExecute);
            IAsyncResult result        = asyncDelegate.BeginInvoke(codeFiles, newargs, this, null, null, filesToEmbed);

            //For a windows app a message loop and for a console app a simple wait
            ExecutionLoop(result);

            asyncDelegate.EndInvoke(result);
        }
예제 #3
0
파일: BaseApp.cs 프로젝트: zhouzu/NScript
        protected void Run(string[] args)
        {
            if (args.Length < 1)
            {
                ShowErrorMessage("Usage : [/c] scriptfile  arg1 arg2 ...");
                ShowErrorMessage("    /c -> compile script to exe");
                ShowErrorMessage("    references in script -> // ref : mylib.dll");
                return;
            }

            if (args[0] == "/c")
            {
                ScriptManager.CompileAndExecuteFile(args[1], args, true);
                return;
            }

            fileName = args[0];

            if (!File.Exists(fileName))
            {
                ShowErrorMessage("File does not exist : " + args[0]);
                return;
            }

            //Create new argument array removing the file name
            string[] newargs = new String[args.Length - 1];
            Array.Copy(args, 1, newargs, 0, args.Length - 1);

            CompileAndExecuteRoutine asyncDelegate = new CompileAndExecuteRoutine(this.CompileAndExecute);
            IAsyncResult             result        = asyncDelegate.BeginInvoke(fileName, newargs, null, null);

            //For a windows app a message loop and for a console app a simple wait
            ExecutionLoop(result);

            asyncDelegate.EndInvoke(result);
        }
예제 #4
0
        protected void Run(string[] args, string[] filesToEmbed)
        {
            Slyce.Common.Utility.CheckForNulls(new object[] { args, filesToEmbed }, new[] { "args", "filesToEmbed" });
            fileNames = args;
            var codeFiles = new string[fileNames.Length - 2];
            int fileCounter = 0;

            foreach (string fileName in fileNames)
            {
                if (fileName.IndexOf("=")< 0)
                {
                    if (!File.Exists(fileName))
                    {
                        ShowErrorMessageFromResource("FileDoesnotExist", args[0]);
                        return;
                    }
                    codeFiles[fileCounter] = fileName;
                    fileCounter++;
                }
            }

            //			//Create new argument array removing the file name
            var newargs = new String[args.Length - 1];
            //string[] newargs = new String[1];
            //newargs[0] = outputFileType;
            Array.Copy(args, 1, newargs, 0, args.Length - 1);

            var asyncDelegate = new CompileAndExecuteRoutine(CompileAndExecute);
            IAsyncResult result = asyncDelegate.BeginInvoke(codeFiles, newargs, this, null, null, filesToEmbed);

            //For a windows app a message loop and for a console app a simple wait
            ExecutionLoop(result);

            asyncDelegate.EndInvoke(result);
        }
예제 #5
0
            public void Run(string[] args,string[] strReferenceAssembliesToAdd)
            {
                if (args.Length < 1)
                {
                    ShowUsage();
                    return;
                }

                fileName = args[0];

                if (!File.Exists(fileName))
                {
                    ShowErrorMessage("FileDoesnotExist (from resource):" + args[0]);
                    return;
                }

                //Create new argument array removing the file name
                string[] newargs = new String[args.Length - 1];
                Array.Copy(args, 1, newargs, 0, args.Length - 1);

                CompileAndExecuteRoutine asyncDelegate = new CompileAndExecuteRoutine(this.CompileAndExecute);
                IAsyncResult result = asyncDelegate.BeginInvoke(fileName, newargs, strReferenceAssembliesToAdd, this, null, null);
            }