public ICSharpCode.Core.AddIn InstallAddIn(NuGet.IPackage package, string packageDirectory) { if (InstallAddInFromArchiveCallback != null) { return(InstallAddInFromPackageCallback(package, packageDirectory)); } else { return(null); } }
public ICSharpCode.Core.AddIn GetAddInForNuGetPackage(NuGet.IPackage package, bool withAddInsMarkedForInstallation) { if (GetAddInForNuGetPackageCallback != null) { return(GetAddInForNuGetPackageCallback(package, withAddInsMarkedForInstallation)); } else { return(null); } }
private PackageNode(IPackage requiredPackage, IPackage installedPackage, Referer referer) { Dependencies = new HashSet <PackageNode>(); Referers = new HashSet <Referer>(); RequiredPackage = requiredPackage; InstalledPackage = installedPackage; if (referer != null) { Referers.Add(referer); } }
/// <summary> /// Creates manifest file for theme or widget to save package metadata /// </summary> /// <param name="package">Package</param> /// <param name="packageFiles">Installed files</param> public static void CreateManifestIfNotExists(NuGet.IPackage package, List <PackageFile> packageFiles) { var shortPath = ""; var type = PackageType(packageFiles); if (type == "theme") { shortPath = $@"Custom\Themes\{package.Id}\theme.xml"; } if (type == "widget") { shortPath = $@"Custom\Widgets\{package.Id}\widget.xml"; } if (string.IsNullOrEmpty(shortPath)) { return; } var path = Path.Combine(HttpContext.Current.Server.MapPath(Utils.ApplicationRelativeWebRoot), shortPath); if (File.Exists(path)) { return; } using (var writer = new XmlTextWriter(path, Encoding.UTF8)) { writer.Formatting = Formatting.Indented; writer.Indentation = 4; writer.WriteStartDocument(true); writer.WriteStartElement("metadata"); writer.WriteElementString("id", package.Id); writer.WriteElementString("description", package.Description); writer.WriteElementString("authors", string.Join(", ", package.Authors)); writer.WriteElementString("website", package.ProjectUrl == null ? "" : package.ProjectUrl.ToString()); writer.WriteElementString("version", package.Version.ToString()); writer.WriteElementString("iconurl", package.IconUrl == null ? "" : package.IconUrl.ToString()); writer.WriteEndElement(); } var idx = packageFiles.Count + 1; packageFiles.Add(new PackageFile { PackageId = package.Id, FileOrder = idx, FilePath = shortPath, IsDirectory = false }); }
public void UpdateInstalledPackage(IPackage package) { if (InstalledPackage != null && package.Id != InstalledPackage.Id) { throw new Exception("Package Ids must match."); } if (InstalledPackage != null && package.Version < InstalledPackage.Version) { throw new Exception("Downgrading not allowed."); } InstalledPackage = package; }
public void UpdateRequiredPackage(IPackage package) { if (package.Id != RequiredPackage.Id) { throw new Exception("Package Ids must match."); } if (package.Version < RequiredPackage.Version) { throw new Exception("Downgrading not allowed."); } RequiredPackage = package; }
internal PackageInfo(NuGet.IPackage nuGetPackage) { // Retrieve package data this.name = new PackageName(nuGetPackage.Id, nuGetPackage.Version.Version); this.title = nuGetPackage.Title; this.summary = nuGetPackage.Summary; this.description = nuGetPackage.Description; this.releaseNotes = nuGetPackage.ReleaseNotes; this.requireLicense = nuGetPackage.RequireLicenseAcceptance; this.projectUrl = nuGetPackage.ProjectUrl; this.licenseUrl = nuGetPackage.LicenseUrl; this.iconUrl = nuGetPackage.IconUrl; this.downloadCount = nuGetPackage.DownloadCount; this.publishDate = nuGetPackage.Published.HasValue ? nuGetPackage.Published.Value.DateTime : DateTime.MinValue; if (nuGetPackage.Authors != null) { this.authors.AddRange(nuGetPackage.Authors); } if (nuGetPackage.Tags != null) { this.tags.AddRange(nuGetPackage.Tags.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)); } // Retrieve the matching set of dependencies. IEnumerable <NuGet.PackageDependencySet> dependencySets = nuGetPackage.DependencySets; if (dependencySets != null) { List <FrameworkName> availableTargetFrameworks = dependencySets.Select(item => item.TargetFramework).ToList(); FrameworkName matchingTargetFramework = PackageManager.SelectBestFrameworkMatch(availableTargetFrameworks); NuGet.PackageDependencySet matchingDependencySet = dependencySets.FirstOrDefault(item => item.TargetFramework == matchingTargetFramework); if (matchingDependencySet != null) { foreach (NuGet.PackageDependency dependency in matchingDependencySet.Dependencies) { if (dependency.VersionSpec != null && dependency.VersionSpec.MinVersion != null) { this.dependencies.Add(new PackageName(dependency.Id, dependency.VersionSpec.MinVersion.Version)); } else { this.dependencies.Add(new PackageName(dependency.Id, null)); } } } } }
/// <summary> /// Copy uncompressed package files /// to application directories /// </summary> /// <param name="package">Package</param> public static List <PackageFile> InstallPackage(NuGet.IPackage package) { var packageFiles = new List <PackageFile>(); var content = HttpContext.Current.Server.MapPath(Utils.ApplicationRelativeWebRoot + string.Format("App_Data/packages/{0}.{1}/content", package.Id, package.Version)); var lib = HttpContext.Current.Server.MapPath(Utils.ApplicationRelativeWebRoot + string.Format("App_Data/packages/{0}.{1}/lib", package.Id, package.Version)); var root = HttpContext.Current.Server.MapPath(Utils.ApplicationRelativeWebRoot); var bin = HttpContext.Current.Server.MapPath(Utils.ApplicationRelativeWebRoot + "bin"); // copy content files var source = new DirectoryInfo(content); var target = new DirectoryInfo(root); fileOrder = 0; if (Directory.Exists(content)) { CopyDirectory(source, target, package.Id, packageFiles); CreateManifestIfNotExists(package, packageFiles); // clear after install ForceDeleteDirectory(content); } // copy DLLs from lib to bin if (Directory.Exists(lib)) { source = new DirectoryInfo(lib); target = new DirectoryInfo(bin); fileOrder = 0; CopyDirectory(source, target, package.Id, packageFiles); // clear after install ForceDeleteDirectory(lib); } return(packageFiles); }
internal PackageInfo(NuGet.IPackage nuGetPackage) { // Retrieve package data this.name = new PackageName(nuGetPackage.Id, nuGetPackage.Version.Version); this.title = nuGetPackage.Title; this.summary = nuGetPackage.Summary; this.description = nuGetPackage.Description; this.releaseNotes = nuGetPackage.ReleaseNotes; this.requireLicense = nuGetPackage.RequireLicenseAcceptance; this.projectUrl = nuGetPackage.ProjectUrl; this.licenseUrl = nuGetPackage.LicenseUrl; this.iconUrl = nuGetPackage.IconUrl; this.downloadCount = nuGetPackage.DownloadCount; this.publishDate = nuGetPackage.Published.HasValue ? nuGetPackage.Published.Value.DateTime : DateTime.MinValue; if (nuGetPackage.Authors != null) { this.authors.AddRange(nuGetPackage.Authors); } if (nuGetPackage.Tags != null) { this.tags.AddRange(nuGetPackage.Tags.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)); } // Retrieve the matching set of dependencies. For now, don't support different sets and just pick the first one. var matchingDependencySet = nuGetPackage.DependencySets.FirstOrDefault(); if (matchingDependencySet != null) { foreach (NuGet.PackageDependency dependency in matchingDependencySet.Dependencies) { if (dependency.VersionSpec != null && dependency.VersionSpec.MinVersion != null) { this.dependencies.Add(new PackageName(dependency.Id, dependency.VersionSpec.MinVersion.Version)); } else { this.dependencies.Add(new PackageName(dependency.Id, null)); } } } }
public int CompareAddInToPackageVersion(ICSharpCode.Core.AddIn addIn, NuGet.IPackage nuGetPackage) { if ((addIn == null) || (nuGetPackage == null)) { // Consider this as equal (?) return(0); } // Look if AddIn has a NuGet version tag in manifest Version addInVersion = addIn.Version; if (addIn.Properties.Contains(ManagedAddIn.NuGetPackageVersionManifestAttribute)) { try { addInVersion = new Version(addIn.Properties[ManagedAddIn.NuGetPackageVersionManifestAttribute]); } catch (Exception) { addInVersion = addIn.Version; } } if (addInVersion == null) { if (nuGetPackage == null) { // Both versions are null -> equal return(0); } else { // Non-null version is greater return(-1); } } return(addInVersion.CompareTo(nuGetPackage.Version.Version)); }
protected override bool IsProjectPackage(NuGet.IPackage package) { IsProjectPackageIsCalled = true; return(IsProjectPackageReturnsValue); }
public ICSharpCode.Core.AddIn GetAddInForNuGetPackage(NuGet.IPackage package) { return(GetAddInForNuGetPackage(package, false)); }
public bool IsDependentOn(IPackage package) { return(Dependencies.Any(x => x.RequiredPackage.Id == package.Id || x.IsDependentOn(package))); }
public static PackageNode Create(IPackage package, Referer referer = null, IPackage installedPackage = null) => new PackageNode(package, installedPackage, referer);
public PackageWrapper(NuGet.IPackage package, System.Collections.Generic.IEnumerable <NuGet.PackageDependencySet> dependencySets) { }
public PackageViewModel CreateViewModel(NuGet.IPackage package, string packageSource) { return(new PackageViewModel(package, packageSource, MruManager, UIServices, EditorService.Value, SettingsManager)); }
public override IVsExtension CreateExtension(NuGet.IPackage package) { return(new PackageItem(this, package)); }
public static Referer CreateFromSolutionHighestVersion(IPackage package) => new Referer(name: HIGHEST_SOLUTION_VERSION_REFERER_NAME, packageNode: null, versionSpec: package.Version.ToMinVersionSpecInclusive());