示例#1
0
        /// <summary>
        /// Build script
        /// </summary>
        /// <param name="filenames">Files</param>
        /// <param name="releaseMode">Release mode (default=false)</param>
        /// <param name="optimizer">Optimize script (default=false)</param>
        /// <returns>BuildScript</returns>
        public static BuildScript BuildScript(string[] filenames, bool releaseMode = false, bool optimizer = false)
        {
            var ext  = System.IO.Path.GetExtension(filenames.First());
            var comp = (ext.ToLowerInvariant()) switch
            {
                ".cs" => Compiler.CompileCSFiles(filenames, new string[0] {
                }, releaseMode),
                ".vb" => Compiler.CompileVBFiles(filenames, new string[0] {
                }, releaseMode),
                _ => throw new System.Exception("do not support extname = " + ext),
            };

            using (var streamDll = new MemoryStream(comp.Dll))
                using (var streamPdb = new MemoryStream(comp.Pdb))
                {
                    var bs = new BuildScript();
                    bs.Build(streamDll, streamPdb, optimizer);

                    if (bs.Error != null)
                    {
                        throw (bs.Error);
                    }

                    if (bs.Error != null)
                    {
                        throw bs.Error;
                    }

                    return(bs);
                }
        }
示例#2
0
        /// <summary>
        /// Build script
        /// </summary>
        /// <param name="filename">File</param>
        /// <param name="releaseMode">Release mode (default=false)</param>
        /// <returns>BuildScript</returns>
        public static BuildScript BuildScript(string filename, bool releaseMode = false, bool optimizer = false)
        {
            var comp = Compiler.CompileCSFiles(new string[] { filename }, new string[0] {
            }, releaseMode);

            using (var streamDll = new MemoryStream(comp.Dll))
                using (var streamPdb = new MemoryStream(comp.Pdb))
                {
                    var bs = new BuildScript();
                    bs.Build(streamDll, streamPdb, optimizer);

                    if (bs.Error != null)
                    {
                        throw (bs.Error);
                    }

                    if (bs.Error != null)
                    {
                        throw bs.Error;
                    }

                    return(bs);
                }
        }