コード例 #1
0
        protected virtual void Preprocess()
        {
            CheckSolutionIsOpen();
            UpdateActiveSourceRepository(Source);
            DetermineFileConflictAction();

            ParseUserInputForVersion();

            if (!projectSpecified)
            {
                projects = ConsoleHost.GetNuGetProjects().ToList();
            }
            else
            {
                NuGetProject project = ConsoleHost.GetNuGetProject(ProjectName);
                if (project == null)
                {
                    ThrowProjectNotOpenTerminatingError();
                }

                projects = new List <NuGetProject> {
                    project
                };
            }

            if (Reinstall)
            {
                ActionType = NuGetActionType.Reinstall;
            }
            else
            {
                ActionType = NuGetActionType.Update;
            }
        }
コード例 #2
0
        List <NuGetProject> GetNuGetProjects()
        {
            if (HasSelectedProjectName())
            {
                return new List <NuGetProject> {
                           ConsoleHost.GetNuGetProject(ProjectName)
                }
            }
            ;

            return(ConsoleHost.GetNuGetProjects().ToList());
        }

        bool HasSelectedProjectName()
        {
            return(ProjectName != null);
        }

        void WriteInstalledPackages()
        {
            CheckSolutionIsOpen();

            var packagesToDisplay = GetInstalledPackagesAsync(projects, Filter, Skip, First, ConsoleHost.Token);

            WriteInstalledPackages(packagesToDisplay.Result);
        }

        void WriteInstalledPackages(Dictionary <NuGetProject, IEnumerable <NuGet.Packaging.PackageReference> > packages)
        {
            List <PowerShellInstalledPackage> view = PowerShellInstalledPackage.GetPowerShellPackageView(packages, ConsoleHost.SolutionManager, ConsoleHost.Settings);

            if (view.Any())
            {
                WritePackagesToOutputPipeline(view);
            }
            else
            {
                Log(MessageLevel.Info, GettextCatalog.GetString("No packages installed."));
            }
        }
        async Task ExecuteInitScriptsAsync()
        {
            var projects       = ConsoleHost.GetNuGetProjects().ToList();
            var packageManager = ConsoleHost.CreatePackageManager();

            var packagesByFramework  = new Dictionary <NuGetFramework, HashSet <PackageIdentity> > ();
            var sortedGlobalPackages = new List <PackageIdentity>();

            foreach (var project in projects)
            {
                var buildIntegratedProject = project as BuildIntegratedNuGetProject;

                if (buildIntegratedProject != null)
                {
                    var packages = await BuildIntegratedProjectUtility
                                   .GetOrderedProjectPackageDependencies(buildIntegratedProject);

                    sortedGlobalPackages.AddRange(packages);
                }
                else
                {
                    // Read packages.config
                    var installedRefs = await project.GetInstalledPackagesAsync(CancellationToken.None);

                    if (installedRefs?.Any() == true)
                    {
                        // Index packages.config references by target framework since this affects dependencies
                        NuGetFramework targetFramework;
                        if (!project.TryGetMetadata(NuGetProjectMetadataKeys.TargetFramework, out targetFramework))
                        {
                            targetFramework = NuGetFramework.AnyFramework;
                        }

                        HashSet <PackageIdentity> fwPackages;
                        if (!packagesByFramework.TryGetValue(targetFramework, out fwPackages))
                        {
                            fwPackages = new HashSet <PackageIdentity> ();
                            packagesByFramework.Add(targetFramework, fwPackages);
                        }

                        fwPackages.UnionWith(installedRefs.Select(reference => reference.PackageIdentity));
                    }
                }
            }

            // Each id/version should only be executed once
            var finishedPackages = new HashSet <PackageIdentity>();

            // Packages.config projects
            if (packagesByFramework.Count > 0)
            {
                await ExecuteInitPs1ForPackagesConfig(
                    packageManager,
                    packagesByFramework,
                    finishedPackages);
            }

            // build integrated projects
            if (sortedGlobalPackages.Count > 0)
            {
                ExecuteInitPs1ForBuildIntegrated(
                    sortedGlobalPackages,
                    finishedPackages);
            }
        }