示例#1
0
        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;
        }
示例#2
0
        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);
        }