in src/Analysis/Codelyzer.Analysis.Build/ProjectBuildHandler.cs [393:434]
public ProjectBuildResult ReferenceOnlyBuild()
{
ProjectBuildResult projectBuildResult = new ProjectBuildResult
{
BuildErrors = Errors,
ProjectPath = _projectPath,
ProjectRootPath = Path.GetDirectoryName(_projectPath),
Compilation = Compilation,
PrePortCompilation = PrePortCompilation,
IsSyntaxAnalysis = isSyntaxAnalysis,
PreportReferences = PrePortMetaReferences,
MissingReferences = MissingMetaReferences
};
GetTargetFrameworks(projectBuildResult, AnalyzerResult);
projectBuildResult.ProjectGuid = ProjectAnalyzer.ProjectGuid.ToString();
projectBuildResult.ProjectType = ProjectAnalyzer.ProjectInSolution != null ? ProjectAnalyzer.ProjectInSolution.ProjectType.ToString() : string.Empty;
foreach (var syntaxTree in Compilation?.SyntaxTrees)
{
var sourceFilePath = Path.GetRelativePath(projectBuildResult.ProjectRootPath, syntaxTree.FilePath);
var preportTree = PrePortCompilation?.SyntaxTrees?.FirstOrDefault(s => s.FilePath == syntaxTree.FilePath);
var fileResult = new SourceFileBuildResult
{
SyntaxTree = syntaxTree,
PrePortSemanticModel = preportTree != null ? PrePortCompilation?.GetSemanticModel(preportTree) : null,
SemanticModel = Compilation.GetSemanticModel(syntaxTree),
SourceFileFullPath = syntaxTree.FilePath,
SourceFilePath = sourceFilePath
};
projectBuildResult.SourceFileBuildResults.Add(fileResult);
projectBuildResult.SourceFiles.Add(sourceFilePath);
}
if (_analyzerConfiguration != null && _analyzerConfiguration.MetaDataSettings.ReferenceData)
{
projectBuildResult.ExternalReferences = GetExternalReferences(Compilation, null, Compilation.References);
}
return projectBuildResult;
}