Exemple #1
0
        /// <returns>The file name of the compiled assembly.</returns>
        private Assembly _Compile(string[] files, IEnumerable <string> assemblyReferences, IScriptModuleInstance language)
        {
            // Assembly references come in two flavors:
            // 1. Framework assemblies -- need only the file name.
            // 2. Other assemblies -- need the qualified file name.
            _errors.Clear();

            HashSet <string> uniqueAssemblyReferences = new HashSet <string>(assemblyReferences);

            // Remove .NET framework and GAC assemblies.
            uniqueAssemblyReferences.RemoveWhere(x => x.StartsWith(Environment.GetFolderPath(Environment.SpecialFolder.Windows), StringComparison.OrdinalIgnoreCase));

            ICompilerParameters compilerParameters = new ScriptCompilerParameters {
                GenerateInMemory = true,
                //IncludeDebugInformation = true
            };

            compilerParameters.ReferencedAssemblies.AddRange(uniqueAssemblyReferences.ToArray());

            ICompilerResults results = language.CodeProvider.CompileAssemblyFromFile(compilerParameters, files);

            // Get any errors.
            foreach (ICompilerError error in results.Errors)
            {
                _errors.Add(string.Format("{0} [{1}]: {2}", Path.GetFileName(error.FileName), error.Line, error.ErrorText));
            }

            return(results.HasErrors ? null : results.CompiledAssembly);
        }
Exemple #2
0
        /// <returns>The file name of the compiled assembly.</returns>
        private Assembly _Compile(string[] files, HashSet <string> uniqueAssemblyReferences, ScriptSequence sequence)
        {
            IScriptModuleInstance language = sequence.Language;

            // Assembly references come in two flavors:
            // 1. Framework assemblies -- need only the file name.
            // 2. Other assemblies -- need the qualified file name.
            _errors.Clear();

            ICompilerParameters compilerParameters = new ScriptCompilerParameters {
                GenerateInMemory = true,
                //IncludeDebugInformation = true
            };

            compilerParameters.ReferencedAssemblies.AddRange(uniqueAssemblyReferences.ToArray());

            ICompilerResults results = language.CodeProvider.CompileAssemblyFromFile(compilerParameters, files);

            // Get any errors.
            foreach (ICompilerError error in results.Errors)
            {
                _errors.Add(string.Format("{0} [{1}]: {2}", Path.GetFileName(error.FileName), error.Line, error.ErrorText));
            }

            return(results.HasErrors ? null : results.CompiledAssembly);
        }
Exemple #3
0
        /// <returns>The file name of the compiled assembly.</returns>
        private Assembly _Compile(string[] files, HashSet<string> uniqueAssemblyReferences, ScriptSequence sequence)
        {
            IScriptModuleInstance language = sequence.Language;
            // Assembly references come in two flavors:
            // 1. Framework assemblies -- need only the file name.
            // 2. Other assemblies -- need the qualified file name.
            _errors.Clear();

            ICompilerParameters compilerParameters = new ScriptCompilerParameters {
                GenerateInMemory = true,
                //IncludeDebugInformation = true
            };
            compilerParameters.ReferencedAssemblies.AddRange(uniqueAssemblyReferences.ToArray());

            ICompilerResults results = language.CodeProvider.CompileAssemblyFromFile(compilerParameters, files);

            // Get any errors.
            foreach (ICompilerError error in results.Errors) {
                _errors.Add(string.Format("{0} [{1}]: {2}", Path.GetFileName(error.FileName), error.Line, error.ErrorText));
            }

            return results.HasErrors ? null : results.CompiledAssembly;
        }
        /// <returns>The file name of the compiled assembly.</returns>
        private Assembly _Compile(string[] files, IEnumerable<string> assemblyReferences, IScriptModuleInstance language)
        {
            // Assembly references come in two flavors:
            // 1. Framework assemblies -- need only the file name.
            // 2. Other assemblies -- need the qualified file name.
            _errors.Clear();

            HashSet<string> uniqueAssemblyReferences = new HashSet<string>(assemblyReferences);
            // Remove .NET framework and GAC assemblies.
            uniqueAssemblyReferences.RemoveWhere(x => x.StartsWith(Environment.GetFolderPath(Environment.SpecialFolder.Windows), StringComparison.OrdinalIgnoreCase));

            ICompilerParameters compilerParameters = new ScriptCompilerParameters {
                GenerateInMemory = true,
                //IncludeDebugInformation = true
            };
            compilerParameters.ReferencedAssemblies.AddRange(uniqueAssemblyReferences.ToArray());

            ICompilerResults results = language.CodeProvider.CompileAssemblyFromFile(compilerParameters, files);

            // Get any errors.
            foreach(ICompilerError error in results.Errors) {
                _errors.Add(string.Format("{0} [{1}]: {2}", Path.GetFileName(error.FileName), error.Line, error.ErrorText));
            }

            return results.HasErrors ? null : results.CompiledAssembly;
        }