bool PackageNeedsReinstall(IPackageCompatibilityNuGetProject nugetProject, PackageReference packageReference) { var targetFramework = nugetProject.TargetFramework; string packageFileName = nugetProject.GetInstalledPackageFilePath(packageReference.PackageIdentity); if (!FileExists(packageFileName)) { return(false); } var compatibility = CreatePackageCompatibility(targetFramework, packageReference, packageFileName); compatibility.CheckCompatibility(); compatibilityReport.Add(compatibility); return(compatibility.ShouldReinstallPackage); }
public async Task CheckProjectPackages(IDotNetProject project) { packageReferenceFileName = project.GetPackagesConfigFilePath(); var targetFramework = new ProjectTargetFramework(project); compatibilityReport = new ProjectPackagesCompatibilityReport(targetFramework.TargetFrameworkName); IPackageCompatibilityNuGetProject nugetProject = await GetNuGetProject(project); var installedPackages = await nugetProject.GetInstalledPackagesAsync(CancellationToken.None); packageReferences = installedPackages.ToList(); foreach (var packageReference in packageReferences) { if (PackageNeedsReinstall(nugetProject, packageReference)) { packagesRequiringReinstallation.Add(packageReference.PackageIdentity); } } }