fix dependency version bug

This commit is contained in:
Krzysztof Wicher 2015-12-08 23:22:08 -08:00
parent 344a730607
commit ba6b0e5d9b
4 changed files with 18 additions and 6 deletions

View file

@ -95,6 +95,7 @@ namespace Microsoft.DotNet.ProjectModel
yield return new ProjectContextBuilder()
.WithProject(project)
.WithTargetFramework(framework.FrameworkName)
.WithSettings(settings)
.Build();
}
}

View file

@ -37,6 +37,8 @@ namespace Microsoft.DotNet.ProjectModel
private Func<string, LockFile> LockFileResolver { get; set; }
private ProjectReader.Settings Settings { get; set; }
public ProjectContextBuilder()
{
ProjectResolver = ResolveProject;
@ -109,6 +111,12 @@ namespace Microsoft.DotNet.ProjectModel
return this;
}
public ProjectContextBuilder WithSettings(ProjectReader.Settings settings)
{
Settings = settings;
return this;
}
public IEnumerable<ProjectContext> BuildAllTargets()
{
ProjectDirectory = Project?.ProjectDirectory ?? ProjectDirectory;
@ -165,7 +173,7 @@ namespace Microsoft.DotNet.ProjectModel
}
var libraries = new Dictionary<LibraryKey, LibraryDescription>();
var projectResolver = new ProjectDependencyProvider();
var projectResolver = new ProjectDependencyProvider(Settings);
var mainProject = projectResolver.GetDescription(TargetFramework, Project);

View file

@ -21,7 +21,7 @@ namespace Microsoft.DotNet.ProjectModel
public string VersionSuffix = null;
}
public static bool TryGetProject(string path, out Project project, ICollection<DiagnosticMessage> diagnostics = null)
public static bool TryGetProject(string path, out Project project, ICollection<DiagnosticMessage> diagnostics = null, Settings settings = null)
{
project = null;
@ -55,7 +55,7 @@ namespace Microsoft.DotNet.ProjectModel
using (var stream = File.OpenRead(projectPath))
{
var reader = new ProjectReader();
project = reader.ReadProject(stream, projectName, projectPath, diagnostics);
project = reader.ReadProject(stream, projectName, projectPath, diagnostics, settings);
}
}
catch (Exception ex)

View file

@ -15,15 +15,18 @@ namespace Microsoft.DotNet.ProjectModel.Resolution
public class ProjectDependencyProvider
{
private Func<string, Project> _resolveProject;
private ProjectReader.Settings _settings;
public ProjectDependencyProvider()
public ProjectDependencyProvider(ProjectReader.Settings settings = null)
{
_resolveProject = ResolveProject;
_settings = settings;
}
public ProjectDependencyProvider(Func<string, Project> projectCacheResolver)
public ProjectDependencyProvider(Func<string, Project> projectCacheResolver, ProjectReader.Settings settings = null)
{
_resolveProject = projectCacheResolver;
_settings = settings;
}
public ProjectDescription GetDescription(string name,
@ -87,7 +90,7 @@ namespace Microsoft.DotNet.ProjectModel.Resolution
private Project ResolveProject(string path)
{
Project project;
if (ProjectReader.TryGetProject(path, out project))
if (ProjectReader.TryGetProject(path, out project, settings: _settings))
{
return project;
}