private void RegisterInstallerEvents(Mock<VsPackageInstallerEvents> installerEvents, VsPackageEventHandler handler) { installerEvents.Object.PackageInstalled += handler; installerEvents.Object.PackageInstalling += handler; installerEvents.Object.PackageReferenceAdded += handler; installerEvents.Object.PackageReferenceRemoved += handler; installerEvents.Object.PackageUninstalled += handler; installerEvents.Object.PackageUninstalling += handler; }
void InstallPackage(PrigPackageViewModel viewModel, Project project, string packageId, string version, uint progressValue, uint progressMaximum) { var onInstalling = new VsPackageEventHandler(metadata => viewModel.Statusbar.ReportProgress(string.Format("Installing '{0}'...", metadata.Id), progressValue, progressMaximum)); var onInstalled = new VsPackageEventHandler(metadata => viewModel.Statusbar.ReportProgress(string.Format("Installed '{0}'.", metadata.Id), progressValue, progressMaximum)); var onReferenceAdded = new VsPackageEventHandler(metadata => viewModel.Statusbar.ReportProgress(string.Format("Reference Added '{0}'.", metadata.Id), progressValue, progressMaximum)); try { InstallerEvents.PackageInstalling += onInstalling; InstallerEvents.PackageInstalled += onInstalled; InstallerEvents.PackageReferenceAdded += onReferenceAdded; var source = default(string); var ignoreDependencies = false; Installer.InstallPackage(source, project, packageId, version, ignoreDependencies); } finally { InstallerEvents.PackageInstalling -= onInstalling; InstallerEvents.PackageInstalled -= onInstalled; InstallerEvents.PackageReferenceAdded -= onReferenceAdded; } }