public ProjectFileInfo Build(string language)
            {
                var commandLineArgs = GetCommandLineArgs(_project);

                var outputFilePath = _project.ReadPropertyString(PropertyNames.TargetPath);

                if (!string.IsNullOrWhiteSpace(outputFilePath))
                {
                    outputFilePath = GetAbsolutePathRelativeToProject(outputFilePath);
                }

                var outputRefFilePath = _project.ReadPropertyString(PropertyNames.TargetRefPath);

                if (!string.IsNullOrWhiteSpace(outputRefFilePath))
                {
                    outputRefFilePath = GetAbsolutePathRelativeToProject(outputRefFilePath);
                }

                var targetFramework = _project.ReadPropertyString(PropertyNames.TargetFramework);

                if (string.IsNullOrWhiteSpace(targetFramework))
                {
                    targetFramework = null;
                }

                var docs = _project.GetDocuments()
                           .Where(IsNotTemporaryGeneratedFile)
                           .Select(d => MakeDocumentFileInfo(_project, d))
                           .ToImmutableArray();

                var additionalDocs = _project.GetAdditionalFiles()
                                     .Select(MakeAdditionalDocumentFileInfo)
                                     .ToImmutableArray();

                return(ProjectFileInfo.Create(
                           language,
                           _loadedProject.FullPath,
                           outputFilePath,
                           outputRefFilePath,
                           targetFramework,
                           commandLineArgs,
                           docs,
                           additionalDocs,
                           _project.GetProjectReferences().ToImmutableArray()
                           ));
            }