private string GetLatestVersionOfPackage(string packageId) { try { var package = NuGetPackageRepository.FindPackagesById(packageId).First(x => x.IsLatestVersion); return(package.Version.ToString()); } catch (Exception) { var package = CachedRepository.FindPackagesById(packageId) .OrderByDescending(x => x.Version.ToString()) .FirstOrDefault(); if (package != null && package.Version != null) { return(package.Version.ToString()); } MessageBox.Show( "Unable to connect to NuGet and no cached packages found for " + packageId, "ServiceStackVS Error", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly ); throw new WizardBackoutException("Unable to connect to NuGet and no cached packages found for " + packageId); } }
private bool TryInstallPackageFromCache(Project project, string packageId, string version) { string userAppData = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); string cachePath = Path.Combine(userAppData, "NuGet\\Cache"); bool cacheExists = Directory.Exists(cachePath); bool useLatest = string.IsNullOrEmpty(version) || version == "latest"; var latestCachePackage = CachedRepository.FindPackagesById(packageId) .OrderByDescending(x => x.Version.ToString()) .FirstOrDefault(x => useLatest && x.IsLatestVersion || x.Version.ToString() == version); if (!useLatest && latestCachePackage != null) { InstallPackageFromLocalCache(project, packageId, cachePath, version); return(true); } List <IPackage> latestNugetPackages; try { latestNugetPackages = NuGetPackageRepository.FindPackagesById(packageId).ToList(); } catch (Exception) { //Nuget down or no connection //Try and revert to latest cached packages OutputWindowWriter.WriteLine("--- WARNING: Unable to contact NuGet servers. Attempting to use local cache ---"); if (latestCachePackage == null) { OutputWindowWriter.WriteLine("--- ERROR: Unable to install ServiceStack from NuGet or local cache ---"); throw new WizardBackoutException("Failed to installed package from cache:" + packageId); } OutputWindowWriter.WriteLine("--- Installing " + packageId + " - " + latestCachePackage.Version + " from local cache ---"); InstallPackageFromLocalCache(project, packageId, cachePath, latestCachePackage.Version.ToString()); return(true); } if (cacheExists) { var latestNugetPackage = latestNugetPackages.FirstOrDefault(x => useLatest && x.IsLatestVersion || x.Version.ToString() == version); bool useCache = latestCachePackage != null && latestNugetPackage != null && latestNugetPackage.Version == latestCachePackage.Version; if (useCache) { OutputWindowWriter.WriteLine("--- Installing " + packageId + " - " + latestNugetPackage.Version + " ---"); InstallPackageFromLocalCache(project, packageId, cachePath, latestNugetPackage.Version.ToString()); return(true); } if (latestNugetPackage == null) { throw new ArgumentException("Invalid or unavailable version provided"); } OutputWindowWriter.WriteLine("--- Installing " + packageId + " - " + latestNugetPackage.Version + " ---"); } return(false); }
private string GetLatestVersionOfPackage(string packageId) { string packageVersion; try { var package = NuGetPackageRepository.FindPackagesById(packageId).First(x => x.IsLatestVersion); packageVersion = package.Version.ToString(); } catch (Exception) { OutputWindowWriter.WriteLine("Unable to get latest version number of '{0}' from NuGet. Falling back to cache.".Fmt(packageId)); var cachedPackage = CachedRepository.FindPackagesById(packageId).OrderByDescending(x => x.Version).First(x => x.IsLatestVersion); packageVersion = cachedPackage.Version.ToString(); } return(packageVersion); }
private string GetLatestVersionOfPackage(string packageId) { var package = NuGetPackageRepository.FindPackagesById(packageId).First(x => x.IsLatestVersion); return(package.Version.ToString()); }