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