/// <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); }
/// <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, 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; }