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);
 }
Пример #3
0
        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));
 }
Пример #5
0
        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));
        }
Пример #6
0
        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);
            }
        }
Пример #7
0
        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));
            }
        }
Пример #8
0
 public BuildFiles WhatFilesAreRequiredToBuild(Class @class)
 {
     var solutionsReferences = solutionFile.AllReferences ?? new List<Reference>();
     buildFiles =  new BuildFiles(@class, ResolveClassesRequiredFor(@class), solutionsReferences);
     return buildFiles;
 }