internal static void ValidateReferenceAssemblies(IEnumerable<IPackageFile> files, IEnumerable<PackageReferenceSet> packageAssemblyReferences)
{
var libFiles = new HashSet<string>(from file in files
where !String.IsNullOrEmpty(file.Path) && file.Path.StartsWith("lib", StringComparison.OrdinalIgnoreCase)
select Path.GetFileName(file.Path), StringComparer.OrdinalIgnoreCase);
foreach (var reference in packageAssemblyReferences.SelectMany(p => p.References))
{
if (!libFiles.Contains(reference) &&
!libFiles.Contains(reference + ".dll") &&
!libFiles.Contains(reference + ".exe") &&
!libFiles.Contains(reference + ".winmd"))
{
throw new InvalidDataException(String.Format(CultureInfo.CurrentCulture, NuGetResources.Manifest_InvalidReference, reference));
}
}
}