Merge pull request #1417 from dotnet/davidfowl/match-nuget-lockfile-validation
This change mimics the nuget lock file generation logic
This commit is contained in:
commit
2326c25e2d
2 changed files with 44 additions and 11 deletions
|
@ -104,6 +104,48 @@ namespace Microsoft.DotNet.ProjectModel.Graph
|
|||
return sb.ToString();
|
||||
}
|
||||
|
||||
public string ToLockFileDependencyGroupString()
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
sb.Append(Name);
|
||||
|
||||
if (VersionRange != null)
|
||||
{
|
||||
if (VersionRange.HasLowerBound)
|
||||
{
|
||||
sb.Append(" ");
|
||||
|
||||
if (VersionRange.IsMinInclusive)
|
||||
{
|
||||
sb.Append(">= ");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.Append("> ");
|
||||
}
|
||||
|
||||
if (VersionRange.IsFloating)
|
||||
{
|
||||
sb.Append(VersionRange.Float.ToString());
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.Append(VersionRange.MinVersion.ToNormalizedString());
|
||||
}
|
||||
}
|
||||
|
||||
if (VersionRange.HasUpperBound)
|
||||
{
|
||||
sb.Append(" ");
|
||||
|
||||
sb.Append(VersionRange.IsMaxInclusive ? "<= " : "< ");
|
||||
sb.Append(VersionRange.MaxVersion.ToNormalizedString());
|
||||
}
|
||||
}
|
||||
|
||||
return sb.ToString();
|
||||
}
|
||||
|
||||
public bool HasFlag(LibraryDependencyTypeFlag flag)
|
||||
{
|
||||
return Type.HasFlag(flag);
|
||||
|
|
|
@ -61,7 +61,7 @@ namespace Microsoft.DotNet.ProjectModel.Graph
|
|||
if (group.FrameworkName == null)
|
||||
{
|
||||
actualDependencies = project.Dependencies
|
||||
.Select(RenderDependency)
|
||||
.Select(d => d.ToLockFileDependencyGroupString())
|
||||
.OrderBy(x => x, StringComparer.OrdinalIgnoreCase);
|
||||
}
|
||||
else
|
||||
|
@ -74,7 +74,7 @@ namespace Microsoft.DotNet.ProjectModel.Graph
|
|||
}
|
||||
|
||||
actualDependencies = framework.Dependencies
|
||||
.Select(RenderDependency)
|
||||
.Select(d => d.ToLockFileDependencyGroupString())
|
||||
.OrderBy(x => x, StringComparer.OrdinalIgnoreCase);
|
||||
}
|
||||
|
||||
|
@ -87,14 +87,5 @@ namespace Microsoft.DotNet.ProjectModel.Graph
|
|||
message = null;
|
||||
return true;
|
||||
}
|
||||
|
||||
private string RenderDependency(LibraryRange arg)
|
||||
{
|
||||
if (arg.Target == LibraryType.Project && arg.VersionRange == null)
|
||||
{
|
||||
return arg.Name;
|
||||
}
|
||||
return $"{arg.Name} {VersionUtility.RenderVersion(arg.VersionRange)}";
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue