public static IEnumerable<ValidationResult> Validate(Stream nuspecStream, out NuspecReader nuspecReader) { try { nuspecReader = new NuspecReader(nuspecStream); var rawMetadata = nuspecReader.GetMetadata(); if (rawMetadata != null && rawMetadata.Any()) { return ValidateCore(PackageMetadata.FromNuspecReader(nuspecReader)); } } catch (Exception ex) { nuspecReader = null; return new [] { new ValidationResult(ex.Message) }; } return Enumerable.Empty<ValidationResult>(); }
public static PackageMetadata FromNuspecReader(NuspecReader nuspecReader) { return new PackageMetadata( nuspecReader.GetMetadata().ToDictionary(kvp => kvp.Key, kvp => kvp.Value), nuspecReader.GetDependencyGroups(), nuspecReader.GetFrameworkReferenceGroups() ); }
public static void AssertVersion(this PackageArchiveReader package, string expectedVersion) { var nuspecReader = new NuspecReader(package.GetNuspec()); var actualVersion = nuspecReader.GetMetadata().Single(x => x.Key == "version").Value; Assert.That(actualVersion, Is.EqualTo(expectedVersion)); }
public static void AssertTitle(this PackageArchiveReader package, string expectedTitle) { var nuspecReader = new NuspecReader(package.GetNuspec()); var actualTitle = nuspecReader.GetMetadata().Single(x => x.Key == "title").Value; Assert.That(actualTitle , Is.EqualTo(expectedTitle)); }
public static void AssertReleaseNotes(this PackageArchiveReader package, string expectedReleaseNotes) { var nuspecReader = new NuspecReader(package.GetNuspec()); var actualReleaseNotes = nuspecReader.GetMetadata().Single(x => x.Key == "releaseNotes").Value; Assert.That(actualReleaseNotes, Is.EqualTo(expectedReleaseNotes)); }
private void LoadNuSpecFile(string filePath) { NuSpecFilePath = Directory.GetFiles(System.IO.Path.GetDirectoryName(filePath), "*.nuspec", SearchOption.AllDirectories).FirstOrDefault(); if (NuSpecFilePath != null) { using (var stream = File.Open(NuSpecFilePath, FileMode.Open)) { var reader = new NuspecReader(stream); var packageId = reader.GetId(); if (packageId != null && packageId.ToLower() == "$id$") packageId = Name; NuGetPackageId = packageId; NuGetPackageTitle = Name; var metadata = reader.GetMetadata().ToArray(); if (metadata.Any(p => p.Key == "title")) { var titlePair = metadata.SingleOrDefault(p => p.Key == "title"); NuGetPackageTitle = titlePair.Value; } } } }
public static IVsPackageMetadata CreateMetadata(string nupkgPath, PackageIdentity package) { IEnumerable<string> authors = Enumerable.Empty<string>(); string description = string.Empty; string title = package.Id; string installPath = string.Empty; try { // installPath is the nupkg path FileInfo file = new FileInfo(nupkgPath); installPath = file.Directory.FullName; PackageReader reader = new PackageReader(file.OpenRead()); using (var nuspecStream = reader.GetNuspec()) { NuspecReader nuspec = new NuspecReader(nuspecStream); var metadata = nuspec.GetMetadata(); authors = GetNuspecValue(metadata, "authors").Split(',').ToArray(); title = GetNuspecValue(metadata, "title"); description = GetNuspecValue(metadata, "description"); } } catch (Exception ex) { // ignore errors from reading the extra fields Debug.Fail(ex.ToString()); } if (String.IsNullOrEmpty(title)) { title = package.Id; } return new VsPackageMetadata(package, title, authors, description, installPath); }