protected override bool ExecuteCore(PackageItem item) { var activePackageManager = GetActivePackageManager(); Debug.Assert(activePackageManager != null); var walker = new InstallWalker( ProjectManager.LocalRepository, activePackageManager.SourceRepository, this, ignoreDependencies: false); IList <PackageOperation> operations = walker.ResolveOperations(item.PackageIdentity).ToList(); IList <IPackage> scriptPackages = (from o in operations where o.Package.HasPowerShellScript() select o.Package).ToList(); if (scriptPackages.Count > 0) { if (!RegistryHelper.CheckIfPowerShell2Installed()) { throw new InvalidOperationException(Resources.Dialog_PackageHasPSScript); } } IEnumerable <IPackage> licensePackages = from o in operations where o.Action == PackageAction.Install && o.Package.RequireLicenseAcceptance && !activePackageManager.LocalRepository.Exists(o.Package) select o.Package; // display license window if necessary if (licensePackages.Any()) { // hide the progress window if we are going to show license window HideProgressWindow(); bool accepted = _licenseWindowOpener.ShowLicenseWindow(licensePackages); if (!accepted) { return(false); } ShowProgressWindow(); } try { RegisterPackageOperationEvents(activePackageManager); ExecuteCommand(item, activePackageManager, operations); } finally { UnregisterPackageOperationEvents(activePackageManager); } return(true); }