public void Transform(Project definition) { var references = SystemNuGetPackages.DetectUpgradeableReferences(definition); foreach (var(_, _, assemblyReference) in references) { assemblyReference.DefinitionElement?.Remove(); } definition.AssemblyReferences = definition.AssemblyReferences.Except(references.Select(x => x.reference)).ToImmutableArray(); var packageReferences = references .Select(x => new PackageReference { Id = x.name, Version = x.version }) .ToImmutableArray(); var adjustedPackageReferences = definition.PackageReferences .Concat(packageReferences) .ToArray(); foreach (var reference in packageReferences) { logger.LogDebug($"Adding NuGet reference to {reference.Id}, version {reference.Version}."); } definition.PackageReferences = adjustedPackageReferences; }
public override IReadOnlyList <IDiagnosticResult> Analyze(Project project) { var list = new List <IDiagnosticResult>(); foreach (var(name, _, reference) in SystemNuGetPackages.DetectUpgradeableReferences(project)) { list.Add( CreateDiagnosticResult(project, $"A better way to reference '{name}' assembly is using respective '{name}' NuGet package. It will simplify porting to other runtimes and enable possible .NET SDK tooling improvements.", project.FilePath) .LoadLocationFromElement(reference.DefinitionElement)); } return(list); }