예제 #1
0
 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>));
 }
예제 #2
0
        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);
                    }
                }
            }
        }
예제 #3
0
        /// <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);
            }
        }
예제 #4
0
        /// <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
     }
 });
예제 #6
0
        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);
                    }
                }
            }
        }
예제 #7
0
 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>));
 }
예제 #8
0
		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);
					}
				}
			}
		}
예제 #9
0
		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);
					}
				}
			}
		}