Use an exact match from the first repository that finds a package.

This commit is contained in:
Pranav K 2017-03-08 10:15:11 -08:00
parent bca4474dd2
commit 84b038498a
2 changed files with 4 additions and 2 deletions

View File

@ -5,7 +5,7 @@
<_BuildGraphFile>$(BuildDir)BuildGraph.proj</_BuildGraphFile> <_BuildGraphFile>$(BuildDir)BuildGraph.proj</_BuildGraphFile>
<_CloneRepositoryRoot>$(RepositoryRoot).r\</_CloneRepositoryRoot> <_CloneRepositoryRoot>$(RepositoryRoot).r\</_CloneRepositoryRoot>
<_DependencyBuildDirectory>$(RepositoryRoot).deps\build\</_DependencyBuildDirectory> <_DependencyBuildDirectory>$(RepositoryRoot).deps\build\</_DependencyBuildDirectory>
<_DependencyPackagesDirectory>$(_DependencyBuildDirectory)></_DependencyPackagesDirectory> <_DependencyPackagesDirectory>$(_DependencyBuildDirectory)</_DependencyPackagesDirectory>
<_RepositoryListFileName>Repositories.props</_RepositoryListFileName> <_RepositoryListFileName>Repositories.props</_RepositoryListFileName>
<_DependencyRepositoryList>$(_DependencyBuildDirectory)$(_RepositoryListFileName)</_DependencyRepositoryList> <_DependencyRepositoryList>$(_DependencyBuildDirectory)$(_RepositoryListFileName)</_DependencyRepositoryList>
<_RestoreGraphSpecsDirectory>$(RepositoryRoot)obj\package-specs\</_RestoreGraphSpecsDirectory> <_RestoreGraphSpecsDirectory>$(RepositoryRoot)obj\package-specs\</_RestoreGraphSpecsDirectory>

View File

@ -64,6 +64,7 @@ namespace PinVersions
.Concat(specProject.TargetFrameworks.SelectMany(tfm => tfm.Dependencies.Select(dependency => new { Dependency = dependency, tfm.FrameworkName }))) .Concat(specProject.TargetFrameworks.SelectMany(tfm => tfm.Dependencies.Select(dependency => new { Dependency = dependency, tfm.FrameworkName })))
.Where(d => d.Dependency.LibraryRange.TypeConstraintAllows(LibraryDependencyTarget.Package)); .Where(d => d.Dependency.LibraryRange.TypeConstraintAllows(LibraryDependencyTarget.Package));
Console.WriteLine($"Pinning package versions for {specProject.FilePath}.");
var packageReferencesItemGroup = new XElement("ItemGroup"); var packageReferencesItemGroup = new XElement("ItemGroup");
foreach (var dependency in allDependencies) foreach (var dependency in allDependencies)
{ {
@ -80,6 +81,7 @@ namespace PinVersions
continue; continue;
} }
Console.WriteLine($"Pinning reference {reference.Name}({reference.LibraryRange.VersionRange} to {exactVersion}.");
var metadata = new List<XAttribute> var metadata = new List<XAttribute>
{ {
new XAttribute("Update", reference.Name), new XAttribute("Update", reference.Name),
@ -125,7 +127,7 @@ namespace PinVersions
switch (matchingVersions.Count) switch (matchingVersions.Count)
{ {
case 0: case 0:
return null; continue;
case 1: case 1:
return matchingVersions[0]; return matchingVersions[0];
default: default: