public void ShouldFailToBuildAClassWithAValidReferenceIfReferenceLoactionNotSupplied() { var unreferencedClass = GetCodeFile("ReferencedDependency.cs.txt"); var buildFiles = new BuildCodeFiles(unreferencedClass, new List<IDependencyInfo>(), new List<IReferenceInfo>()); var compilationResult = new BuildFilesCompiler().Compile(buildFiles); Assert.That(compilationResult.HasErrors); }
public void ShouldBuildASingleEmptyClassWithoutError() { var emptyClass = GetCodeFile("EmptyClass.cs.txt"); var buildFiles = new BuildCodeFiles(emptyClass, new List<IDependencyInfo>(), new List<IReferenceInfo>()); var compilationResult = new BuildFilesCompiler().Compile(buildFiles); Assert.That(!compilationResult.HasErrors); Assert.That(!string.IsNullOrEmpty(compilationResult.AssemblyLocation)); }
public void ShouldBuildAClassWithAValidReferenceIfReferenceLoactionIsSupplied() { var unreferencedClass = GetCodeFile("ReferencedDependency.cs.txt"); var referenceInfo = GetReference("ICSharpCode.NRefactory"); var buildFiles = new BuildCodeFiles(unreferencedClass, new List<IDependencyInfo>(), new List<IReferenceInfo> { referenceInfo }); var compilationResult = new BuildFilesCompiler().Compile(buildFiles); Assert.That(compilationResult.HasErrors); }
private void ResolveDependenciesFor(ICodeFileInfo selectedCodeFile) { var dependencies = wiring.GetDependencyExaminer().ExamineSource(selectedCodeFile, selectedCodeFile.Solution); DependencyViewer.DataContext = new { Dependencies = dependencies.Where(d => !d.IsExternal), selectedCodeFile.Declerations, selectedCodeFile.Project.References }; filesToBuild = new BuildCodeFiles(selectedCodeFile, dependencies, selectedCodeFile.Project.References); }
public CompilationResult Compile(BuildCodeFiles buildFiles) { using(var codeDomProvider = new CSharpCodeProvider()) { var fileNames = buildFiles.AllFiles.Select(c => c.FullPath).Distinct().ToList(); var references = buildFiles.References .Select(reference => reference.FullPath) .ToArray(); var options = new CompilerParameters(); options.ReferencedAssemblies.AddRange(references); var result = codeDomProvider.CompileAssemblyFromFile(options, fileNames.ToArray()); var errors = result.Errors.Cast<CompilerError>().Select(error => error.ErrorText); return new CompilationResult(errors, result.PathToAssembly); } }
public CompilationResult Compile(BuildCodeFiles buildFiles) { using (var codeDomProvider = new CSharpCodeProvider()) { var fileNames = buildFiles.AllFiles.Select(c => c.FullPath).Distinct().ToList(); var references = buildFiles.References .Select(reference => reference.FullPath) .ToArray(); var options = new CompilerParameters(); options.ReferencedAssemblies.AddRange(references); var result = codeDomProvider.CompileAssemblyFromFile(options, fileNames.ToArray()); var errors = result.Errors.Cast <CompilerError>().Select(error => error.ErrorText); return(new CompilationResult(errors, result.PathToAssembly)); } }