public MicrosoftBuildProject(
            IMicrosoftBuildProjectLoader microsoftBuildProjectLoader,
            IMicrosoftBuildProjectAssemblyReferenceResolver assemblyReferenceResolver,
            FilePath projectFileName)
        {
            var sw = Stopwatch.StartNew();

            FileName = projectFileName;

            var msBuildProject = microsoftBuildProjectLoader.LoadMicrosoftBuildProject(projectFileName);

            AssemblyName = msBuildProject.GetPropertyValue("AssemblyName");
            AllowUnsafeBlocks = msBuildProject.GetBoolProperty("AllowUnsafeBlocks") ?? false;
            CheckForOverflowUnderflow = msBuildProject.GetBoolProperty("CheckForOverflowUnderflow") ?? false;

            DefineConstants =
                msBuildProject.GetPropertyValue("DefineConstants")
                    .Split(new[] {';'}, StringSplitOptions.RemoveEmptyEntries)
                    .Select(s => s.Trim());

            CompiledFileNames =
                msBuildProject.GetItems("Compile")
                    .Select(i => Path.Combine(msBuildProject.DirectoryPath, i.EvaluatedInclude));

            ReferencedAssemblies =
                assemblyReferenceResolver.ResolveReferences(msBuildProject);

            _log.DebugFormat("Project [{0}] built in [{1}] ms", Path.GetFileName(FileName.FullPath), sw.ElapsedMilliseconds);
        }
        public MicrosoftBuildProject(
            IMicrosoftBuildProjectLoader microsoftBuildProjectLoader,
            IMicrosoftBuildProjectAssemblyReferenceResolver assemblyReferenceResolver,
            FilePath projectFileName)
        {
            var sw = Stopwatch.StartNew();

            FileName = projectFileName;

            var msBuildProject = microsoftBuildProjectLoader.LoadMicrosoftBuildProject(projectFileName);

            AssemblyName              = msBuildProject.GetPropertyValue("AssemblyName");
            AllowUnsafeBlocks         = msBuildProject.GetBoolProperty("AllowUnsafeBlocks") ?? false;
            CheckForOverflowUnderflow = msBuildProject.GetBoolProperty("CheckForOverflowUnderflow") ?? false;

            DefineConstants =
                msBuildProject.GetPropertyValue("DefineConstants")
                .Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries)
                .Select(s => s.Trim());

            CompiledFileNames =
                msBuildProject.GetItems("Compile")
                .Select(i => Path.Combine(msBuildProject.DirectoryPath, i.EvaluatedInclude));

            ReferencedAssemblies =
                assemblyReferenceResolver.ResolveReferences(msBuildProject);


            _log.DebugFormat("Project [{0}] built in [{1}] ms", Path.GetFileName(FileName.FullPath), sw.ElapsedMilliseconds);
        }
Esempio n. 3
0
 public CSharpProjectFactory(IMicrosoftBuildProjectAssemblyReferenceResolver assemblyReferenceResolver, ICSharpFileFactory cSharpFileFactory, IMicrosoftBuildProjectLoader microsoftBuildProjectLoader)
 {
     _assemblyReferenceResolver   = assemblyReferenceResolver;
     _cSharpFileFactory           = cSharpFileFactory;
     _microsoftBuildProjectLoader = microsoftBuildProjectLoader;
 }