protected override void ExecuteCommand(IProjectManager projectManager, PackageItem item, IVsPackageManager activePackageManager, IList <PackageOperation> operations) { activePackageManager.UpdatePackage( projectManager, item.PackageIdentity, operations, updateDependencies: true, allowPrereleaseVersions: IncludePrerelease, logger: this); }
protected override bool ExecuteCore(PackageItem item) { _activePackageManager = GetActivePackageManager(); using (_activePackageManager.SourceRepository.StartOperation(RepositoryOperationNames.Update, item.Id, item.Version)) { ShowProgressWindow(); IList <Project> selectedProjectsList; bool isProjectLevel = _activePackageManager.IsProjectLevel(item.PackageIdentity); if (isProjectLevel) { HideProgressWindow(); var selectedProjects = _userNotifierServices.ShowProjectSelectorWindow( Resources.Dialog_UpdatesSolutionInstruction, item.PackageIdentity, // Selector function to return the initial checkbox state for a Project. // We check a project if it has the current package installed by Id, but not version project => { var localRepository = _activePackageManager.GetProjectManager(project).LocalRepository; return(localRepository.Exists(item.Id) && IsVersionConstraintSatisfied(item, localRepository)); }, project => { var localRepository = _activePackageManager.GetProjectManager(project).LocalRepository; // for the Updates solution dialog, we only enable a project if it has an old version of // the package installed. return(localRepository.Exists(item.Id) && !localRepository.Exists(item.Id, item.PackageIdentity.Version) && IsVersionConstraintSatisfied(item, localRepository)); } ); if (selectedProjects == null) { // user presses Cancel button on the Solution dialog return(false); } selectedProjectsList = selectedProjects.ToList(); if (selectedProjectsList.Count == 0) { return(false); } ShowProgressWindow(); } else { // solution package. just update into the solution selectedProjectsList = new Project[0]; } IList <PackageOperation> operations; bool acceptLicense = isProjectLevel ? ShowLicenseAgreement(item.PackageIdentity, _activePackageManager, selectedProjectsList, out operations) : ShowLicenseAgreement(item.PackageIdentity, _activePackageManager, targetFramework: null, operations: out operations); if (!acceptLicense) { return(false); } if (!isProjectLevel && operations.Any()) { // When dealing with solution level packages, only the set of actions specified under operations are executed. // In such a case, no operation to uninstall the current package is specified. We'll identify the package that is being updated and // explicitly add a uninstall operation. var packageToUpdate = _activePackageManager.LocalRepository.FindPackage(item.Id); if (packageToUpdate != null) { operations.Insert(0, new PackageOperation(packageToUpdate, PackageAction.Uninstall)); } } try { RegisterPackageOperationEvents(_activePackageManager, null); _activePackageManager.UpdatePackage( selectedProjectsList, item.PackageIdentity, operations, updateDependencies: true, allowPrereleaseVersions: IncludePrerelease, logger: this, eventListener: this); } finally { UnregisterPackageOperationEvents(_activePackageManager, null); } return(true); } }
protected override bool ExecuteCore(PackageItem item) { _activePackageManager = GetActivePackageManager(); using (_activePackageManager.SourceRepository.StartOperation(RepositoryOperationNames.Update)) { ShowProgressWindow(); IList<Project> selectedProjectsList; bool isProjectLevel = _activePackageManager.IsProjectLevel(item.PackageIdentity); if (isProjectLevel) { HideProgressWindow(); var selectedProjects = _userNotifierServices.ShowProjectSelectorWindow( Resources.Dialog_UpdatesSolutionInstruction, item.PackageIdentity, // Selector function to return the initial checkbox state for a Project. // We check a project if it has the current package installed by Id, but not version project => _activePackageManager.GetProjectManager(project).LocalRepository.Exists(item.Id), project => { var localRepository = _activePackageManager.GetProjectManager(project).LocalRepository; // for the Updates solution dialog, we only enable a project if it has an old version of // the package installed. return localRepository.Exists(item.Id) && !localRepository.Exists(item.Id, item.PackageIdentity.Version); } ); if (selectedProjects == null) { // user presses Cancel button on the Solution dialog return false; } selectedProjectsList = selectedProjects.ToList(); if (selectedProjectsList.Count == 0) { return false; } ShowProgressWindow(); } else { // solution package. just update into the solution selectedProjectsList = new Project[0]; } IList<PackageOperation> operations; bool acceptLicense = isProjectLevel ? ShowLicenseAgreement(item.PackageIdentity, _activePackageManager, selectedProjectsList, out operations) : ShowLicenseAgreement(item.PackageIdentity, _activePackageManager, targetFramework: null, operations: out operations); if (!acceptLicense) { return false; } if (!isProjectLevel && operations.Any()) { // When dealing with solution level packages, only the set of actions specified under operations are executed. // In such a case, no operation to uninstall the current package is specified. We'll identify the package that is being updated and // explicitly add a uninstall operation. var packageToUpdate = _activePackageManager.LocalRepository.FindPackage(item.Id); if (packageToUpdate != null) { operations.Insert(0, new PackageOperation(packageToUpdate, PackageAction.Uninstall)); } } try { RegisterPackageOperationEvents(_activePackageManager, null); _activePackageManager.UpdatePackage( selectedProjectsList, item.PackageIdentity, operations, updateDependencies: true, allowPrereleaseVersions: IncludePrerelease, logger: this, eventListener: this); } finally { UnregisterPackageOperationEvents(_activePackageManager, null); } return true; } }
protected override void ExecuteCommand(IProjectManager projectManager, PackageItem item, IVsPackageManager activePackageManager, IList<PackageOperation> operations) { activePackageManager.UpdatePackage(projectManager, item.PackageIdentity, operations, updateDependencies: true, allowPrereleaseVersions: false, logger: this); }
protected override bool ExecuteCore(PackageItem item) { _activePackageManager = GetActivePackageManager(); ShowProgressWindow(); IList<Project> selectedProjectsList; if (_activePackageManager.IsProjectLevel(item.PackageIdentity)) { HideProgressWindow(); var selectedProjects = _userNotifierServices.ShowProjectSelectorWindow( Resources.Dialog_UpdatesSolutionInstruction, item.PackageIdentity, // Selector function to return the initial checkbox state for a Project. // We check a project if it has the current package installed by Id, but not version project => _activePackageManager.GetProjectManager(project).LocalRepository.Exists(item.Id), project => { var localRepository = _activePackageManager.GetProjectManager(project).LocalRepository; // for the Updates solution dialog, we only enable a project if it has a old version of // the package installed. return localRepository.Exists(item.Id) && !localRepository.Exists(item.Id, item.PackageIdentity.Version); } ); if (selectedProjects == null) { // user presses Cancel button on the Solution dialog return false; } selectedProjectsList = selectedProjects.ToList(); if (selectedProjectsList.Count == 0) { return false; } } else { // solution package. just update into the solution selectedProjectsList = new Project[0]; } IList<PackageOperation> operations; bool acceptLicense = CheckPSScriptAndShowLicenseAgreement(item, _activePackageManager, out operations); if (!acceptLicense) { return false; } try { RegisterPackageOperationEvents(_activePackageManager, null); _activePackageManager.UpdatePackage( selectedProjectsList, item.PackageIdentity, operations, updateDependencies: true, allowPrereleaseVersions: false, logger: this, eventListener: this); } finally { UnregisterPackageOperationEvents(_activePackageManager, null); } return true; }
protected override void ExecuteCommand(PackageItem item, IVsPackageManager activePackageManager, IList <PackageOperation> operations) { activePackageManager.UpdatePackage(ProjectManager, item.PackageIdentity, operations, true, this); }
protected override void ExecuteCommand(PackageItem item, IVsPackageManager activePackageManager, IList<PackageOperation> operations) { activePackageManager.UpdatePackage(ProjectManager, item.PackageIdentity, operations, true, this); }