static void Realize(IVsPackageInstaller installer) { installer.InstallPackage(default(string), default(Project), default(string), default(string), default(bool)); installer.InstallPackage(default(string), default(Project), default(string), default(Version), default(bool)); installer.InstallPackagesFromRegistryRepository(default(string), default(bool), default(bool), default(Project), default(IDictionary <string, string>)); installer.InstallPackagesFromRegistryRepository(default(string), default(bool), default(bool), default(bool), default(Project), default(IDictionary <string, string>)); installer.InstallPackagesFromVSExtensionRepository(default(string), default(bool), default(bool), default(Project), default(IDictionary <string, string>)); installer.InstallPackagesFromVSExtensionRepository(default(string), default(bool), default(bool), default(bool), default(Project), default(IDictionary <string, string>)); }
private void InstallReferences(IVsPackageInstaller installerServices, List <MissingReference> missingReferences) { if (missingReferences.Count > 0) { var packages = string.Join(", ", missingReferences.Select(r => r.Reference.Package)); var msg = string.Format("This template requires these references. Do you want to add them using nuget?\n\n{0}", packages); if (!Quiet) { var result = MessageBox.Show(Helpers.MainWindow, msg, "Missing packages", MessageBoxButtons.OKCancel, MessageBoxType.Information, MessageBoxDefaultButton.OK); if (result == DialogResult.Cancel) { throw new WizardCancelledException(); } } foreach (var missingRef in missingReferences) { SetStatusMessage(string.Format("Adding {0}.{1} to project...", missingRef.Reference.Package, missingRef.Reference.Version)); var reference = missingRef.Reference; if (!string.IsNullOrEmpty(reference.ExtensionId)) { installerServices.InstallPackagesFromVSExtensionRepository(reference.ExtensionId, false, false, false, missingRef.Project, new Dictionary <string, string> { { reference.Package, reference.Version } }); } else { installerServices.InstallPackage("https://packages.nuget.org", missingRef.Project, reference.Package, reference.Version, false); } } } }
/// <summary> /// Ensures the appropriate version of the specified packages are installed. If an existing version of the package /// already exists the following will happen: /// If a semantically compatible version already exists, no change is made to the package. /// If an older major version exists, a warning is logged and the package is upgraded. /// If an older minor/build version exists, an information message is logged and the package is upgraded. /// If a newer major version exists, a warning is logged and no change is made to the package. /// </summary> public static async Task InstallPackagesAsync( Dictionary<string, string> packages, string extensionId, ConnectedServiceLogger logger, Project project, IVsPackageInstallerServices packageInstallerServices, IVsPackageInstaller packageInstaller) { Dictionary<string, string> packagesToInstall = new Dictionary<string, string>(); await NuGetUtilities.InstallPackagesAsync( project, packages, (packageId, packageVersion) => { packagesToInstall.Add(packageId, packageVersion); return Task.FromResult<object>(null); }, logger, packageInstallerServices); if (packagesToInstall.Any()) { packageInstaller.InstallPackagesFromVSExtensionRepository(extensionId, false, false, project, packagesToInstall); } }
/// <summary> /// Ensures the appropriate version of the specified packages are installed. If an existing version of the package /// already exists the following will happen: /// If a semantically compatible version already exists, no change is made to the package. /// If an older major version exists, a warning is logged and the package is upgraded. /// If an older minor/build version exists, an information message is logged and the package is upgraded. /// If a newer major version exists, a warning is logged and no change is made to the package. /// </summary> public static async Task InstallPackagesAsync( Dictionary <string, string> packages, string extensionId, ConnectedServiceLogger logger, Project project, IVsPackageInstallerServices packageInstallerServices, IVsPackageInstaller packageInstaller) { Dictionary <string, string> packagesToInstall = new Dictionary <string, string>(); await NuGetUtilities.InstallPackagesAsync( project, packages, (packageId, packageVersion) => { packagesToInstall.Add(packageId, packageVersion); return(Task.FromResult <object>(null)); }, logger, packageInstallerServices); if (packagesToInstall.Any()) { packageInstaller.InstallPackagesFromVSExtensionRepository(extensionId, false, false, project, packagesToInstall); } }
public static void InstallBuildPackagingNuget(this IVsPackageInstaller packageInstaller, Project project) => packageInstaller.InstallPackagesFromVSExtensionRepository( NuGet.Packaging.VisualStudio.Constants.NuGet.RepositoryId, false, true, project, new Dictionary <string, string> { { NuGet.Packaging.VisualStudio.Constants.NuGet.BuildPackagingId, NuGet.Packaging.VisualStudio.Constants.NuGet.BuildPackagingVersion } });
private void InstallReferences(IVsPackageInstaller installerServices, List <MissingReference> missingReferences) { if (missingReferences.Count > 0) { var packages = string.Join(", ", missingReferences.Select(r => r.Reference.Package)); var msg = string.Format("This template requires these references. Do you want to add them using nuget?\n\n{0}", packages); if (!Quiet) { var result = MessageBox.Show(Helpers.MainWindow, msg, "Missing packages", MessageBoxButtons.YesNoCancel, MessageBoxType.Information, MessageBoxDefaultButton.Yes); if (result == DialogResult.Cancel) { throw new WizardCancelledException(); } if (result == DialogResult.No) { return; } } foreach (var missingRef in missingReferences) { SetStatusMessage(string.Format("Adding {0}.{1} to project...", missingRef.Reference.Package, missingRef.Reference.Version)); var reference = missingRef.Reference; if (!string.IsNullOrEmpty(reference.ExtensionId)) { installerServices.InstallPackagesFromVSExtensionRepository(reference.ExtensionId, false, false, false, missingRef.Project, new Dictionary <string, string> { { reference.Package, reference.Version } }); } else { // "All" specifies to use configured package sources. // http://blog.nuget.org/20120926/invoking-nuget-services-from-inside-visual-studio.html#comment-686825894 installerServices.InstallPackage("All", missingRef.Project, reference.Package, reference.Version, false); } } } }
static void Realize(IVsPackageInstaller installer) { installer.InstallPackage(default(string), default(Project), default(string), default(string), default(bool)); installer.InstallPackage(default(string), default(Project), default(string), default(Version), default(bool)); installer.InstallPackagesFromRegistryRepository(default(string), default(bool), default(bool), default(Project), default(IDictionary<string, string>)); installer.InstallPackagesFromRegistryRepository(default(string), default(bool), default(bool), default(bool), default(Project), default(IDictionary<string, string>)); installer.InstallPackagesFromVSExtensionRepository(default(string), default(bool), default(bool), default(Project), default(IDictionary<string, string>)); installer.InstallPackagesFromVSExtensionRepository(default(string), default(bool), default(bool), default(bool), default(Project), default(IDictionary<string, string>)); }
private void InstallReferences(IVsPackageInstaller installerServices, List<MissingReference> missingReferences) { if (missingReferences.Count > 0) { var packages = string.Join(", ", missingReferences.Select(r => r.Reference.Package)); var msg = string.Format("This template requires these references. Do you want to add them using nuget?\n\n{0}", packages); if (!Quiet) { var result = MessageBox.Show(Helpers.MainWindow, msg, "Missing packages", MessageBoxButtons.YesNoCancel, MessageBoxType.Information, MessageBoxDefaultButton.Yes); if (result == DialogResult.Cancel) throw new WizardCancelledException(); if (result == DialogResult.No) return; } foreach (var missingRef in missingReferences) { SetStatusMessage(string.Format("Adding {0}.{1} to project...", missingRef.Reference.Package, missingRef.Reference.Version)); var reference = missingRef.Reference; if (!string.IsNullOrEmpty(reference.ExtensionId)) { installerServices.InstallPackagesFromVSExtensionRepository(reference.ExtensionId, false, false, false, missingRef.Project, new Dictionary<string, string> { { reference.Package, reference.Version } }); } else { // "All" specifies to use configured package sources. // http://blog.nuget.org/20120926/invoking-nuget-services-from-inside-visual-studio.html#comment-686825894 installerServices.InstallPackage("All", missingRef.Project, reference.Package, reference.Version, false); } } } }
private void InstallReferences(IVsPackageInstaller installerServices, List<MissingReference> missingReferences) { if (missingReferences.Count > 0) { var packages = string.Join(", ", missingReferences.Select(r => r.Reference.Package)); var msg = string.Format("This template requires these references. Do you want to add them using nuget?\n\n{0}", packages); if (!Quiet) { var result = MessageBox.Show(Helpers.MainWindow, msg, "Missing packages", MessageBoxButtons.OKCancel, MessageBoxType.Information, MessageBoxDefaultButton.OK); if (result == DialogResult.Cancel) throw new WizardCancelledException(); } foreach (var missingRef in missingReferences) { SetStatusMessage(string.Format("Adding {0}.{1} to project...", missingRef.Reference.Package, missingRef.Reference.Version)); var reference = missingRef.Reference; if (!string.IsNullOrEmpty(reference.ExtensionId)) { installerServices.InstallPackagesFromVSExtensionRepository(reference.ExtensionId, false, false, false, missingRef.Project, new Dictionary<string, string> { { reference.Package, reference.Version } }); } else { installerServices.InstallPackage("https://packages.nuget.org", missingRef.Project, reference.Package, reference.Version, false); } } } }