Пример #1
0
        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>();
        }
Пример #2
0
 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));
 }
Пример #6
0
        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);
        }