public void RestorePackages(Project project) { string packageReferenceFileFullPath; Tuple <string, string> packageReferenceFiles = VsUtility.GetPackageReferenceFileFullPaths(project); if (File.Exists(packageReferenceFiles.Item1)) { packageReferenceFileFullPath = packageReferenceFiles.Item1; } else if (File.Exists(packageReferenceFiles.Item2)) { packageReferenceFileFullPath = packageReferenceFiles.Item2; } else { return; } var packageReferenceFile = new PackageReferenceFile(packageReferenceFileFullPath); var packages = packageReferenceFile.GetPackageReferences().ToList(); if (packages.Count == 0) { return; } var repoSettings = ServiceLocator.GetInstance <IRepositorySettings>(); var fileSystem = new PhysicalFileSystem(repoSettings.RepositoryPath); var activePackageSourceRepository = ServiceLocator.GetInstance <IPackageRepository>(); var repository = new AggregateRepository(new[] { MachineCache.Default, activePackageSourceRepository }); IVsPackageManagerFactory packageManagerFactory = ServiceLocator.GetInstance <IVsPackageManagerFactory>(); var packageManager = packageManagerFactory.CreatePackageManager(repository, useFallbackForDependencies: false); foreach (var package in packages) { if (IsPackageInstalled(fileSystem, package.Id, package.Version)) { continue; } using (packageManager.SourceRepository.StartOperation(RepositoryOperationNames.Restore, package.Id, package.Version.ToString())) { var resolvedPackage = PackageHelper.ResolvePackage( packageManager.SourceRepository, package.Id, package.Version); NuGet.Common.PackageExtractor.InstallPackage(packageManager, resolvedPackage); } } }
public static bool IsSupported(this Project project) { return(VsUtility.IsSupported(project)); }
public static T GetPropertyValue <T>(this Project project, string propertyName) { return(VsUtility.GetPropertyValue <T>(project, propertyName)); }
public static string GetFullPath(this Project project) { return(VsUtility.GetFullPath(project)); }
public static bool GetIsSolutionNodeSelected(this IVsMonitorSelection vsMonitorSelection) { return(VsUtility.GetIsSolutionNodeSelected(vsMonitorSelection)); }
public static Project GetActiveProject(this IVsMonitorSelection vsMonitorSelection) { return(VsUtility.GetActiveProject(vsMonitorSelection)); }