public void ShouldFailToBuildAClassWithAValidReferenceIfReferenceLoactionNotSupplied() { var unreferencedClass = Class.FromPath(GetClassPath("ReferencedDependency.cs.txt")); var buildFiles = new BuildFiles(unreferencedClass, new List<Class>(), new List<Reference>()); var compilationResult = new BuildFilesCompiler().Compile(buildFiles); Assert.That(compilationResult.HasErrors); }
public void ShouldBuildAClassWithAValidReferenceIfReferenceLoactionIsSupplied() { var unreferencedClass = Class.FromPath(GetClassPath("ReferencedDependency.cs.txt")); var buildFiles = new BuildFiles(unreferencedClass, new List<Class>(), new List<Reference> { new Reference("ICSharpCode.NRefactory")}); var compilationResult = new BuildFilesCompiler().Compile(buildFiles); Assert.That(!compilationResult.HasErrors); }
public BuildFiles WhatFilesAreRequiredToBuild(Class @class) { var solutionsReferences = solutionFile.AllReferences ?? new List <Reference>(); buildFiles = new BuildFiles(@class, ResolveClassesRequiredFor(@class), solutionsReferences); return(buildFiles); }
public void ShouldBuildASingleEmptyClassWithoutError() { var emptyClass = Class.FromPath(GetClassPath("EmptyClass.cs.txt")); var buildFiles = new BuildFiles(emptyClass, new List<Class>(), new List<Reference>()); var compilationResult = new BuildFilesCompiler().Compile(buildFiles); Assert.That(!compilationResult.HasErrors); Assert.That(!string.IsNullOrEmpty(compilationResult.AssemblyLocation)); }
private static void CopyBuildFilesToTempDir(BuildFiles buildFiles) { Console.WriteLine("\nFound classes:"); Console.WriteLine("-------------------------------"); foreach(var dependentClass in buildFiles.DependentClasses) Console.WriteLine(" - " + dependentClass.ClassName); Console.WriteLine("\nFound references:"); Console.WriteLine("-------------------------------"); CopyReferencesToTempDir(buildFiles.References.Where(r => r.IsExternalAssembily)); }
public CompilationResult Compile(BuildFiles buildFiles) { using(var codeDomProvider = new CSharpCodeProvider()) { var fileNames = buildFiles.AllClasses.Select(c => c.FullPath).ToArray(); var references = buildFiles.References .Select(reference => reference.FullPath) .ToArray(); var options = new CompilerParameters(); options.ReferencedAssemblies.AddRange(references); var result = codeDomProvider.CompileAssemblyFromFile(options, fileNames); var errors = result.Errors.Cast<CompilerError>().Select(error => error.ErrorText); return new CompilationResult(errors, result.PathToAssembly); } }
public CompilationResult Compile(BuildFiles buildFiles) { using (var codeDomProvider = new CSharpCodeProvider()) { var fileNames = buildFiles.AllClasses.Select(c => c.FullPath).ToArray(); var references = buildFiles.References .Select(reference => reference.FullPath) .ToArray(); var options = new CompilerParameters(); options.ReferencedAssemblies.AddRange(references); var result = codeDomProvider.CompileAssemblyFromFile(options, fileNames); var errors = result.Errors.Cast <CompilerError>().Select(error => error.ErrorText); return(new CompilationResult(errors, result.PathToAssembly)); } }
public BuildFiles WhatFilesAreRequiredToBuild(Class @class) { var solutionsReferences = solutionFile.AllReferences ?? new List<Reference>(); buildFiles = new BuildFiles(@class, ResolveClassesRequiredFor(@class), solutionsReferences); return buildFiles; }