public void Run(PackageReferenceNode packageReferenceNode, ProgressMonitorStatusMessage progressMessage)
        {
            try {
                IPackageManagementProject project = solution.GetProject(packageReferenceNode.Project);
                ReinstallPackageAction    action  = project.CreateReinstallPackageAction();
                action.PackageId      = packageReferenceNode.Id;
                action.PackageVersion = packageReferenceNode.Version;

                runner.Run(progressMessage, action);
            } catch (Exception ex) {
                runner.ShowError(progressMessage, ex);
            }
        }
		void CreateAction (string packageId = "MyPackage", string packageVersion = "1.2.3.4")
		{
			project = new FakePackageManagementProject ();
			project.AddFakeInstallOperation ();

			packageManagementEvents = new PackageManagementEvents ();

			fileRemover = new FakeFileRemover ();

			action = new ReinstallPackageAction (project, packageManagementEvents, fileRemover);
			action.PackageId = packageId;
			action.PackageVersion = new SemanticVersion (packageVersion);
		}
		public ReinstallPackageAction CreateReinstallPackageAction ()
		{
			var action = new ReinstallPackageAction (this, new PackageManagementEvents ());
			ReinstallPackageActionsCreated.Add (action);
			return action;
		}