Ejemplo n.º 1
0
        private FeedEntry DeserializeManifest(VsixPackagePartNode part, string fileName, string category)
        {
            var entry = new FeedEntry(fileName, category);

            using (var stream = part.Part.GetStream(FileMode.Open))
            {
                var vsixSerializer = new VsixSerializer();
                var vsix           = vsixSerializer.Deserialize(stream) as Vsix;
                if (vsix == null)
                {
                    throw new Exception("Could not deserialize VSIX manifest from " + fileName);
                }
                entry.Title  = vsix.Identifier.Name;
                entry.Id     = vsix.Identifier.Id;
                entry.Author = new FeedEntryAuthor {
                    Name = vsix.Identifier.Author
                };
                entry.Content = new FeedEntryContent {
                    Src = BuildUri(category, fileName), Type = "octet/stream"
                };
                entry.Vsix = new FeedEntryVsix {
                    Id = vsix.Identifier.Id, Version = vsix.Identifier.Version
                };
                entry.MoreInfo = vsix.References.Any() ? vsix.References.First().MoreInfoUrl : string.Empty;
                entry.Summary  = vsix.Identifier.Description;
            }
            return(entry);
        }
Ejemplo n.º 2
0
        private FeedEntry DeserializeManifestV2(VsixPackagePartNode part, string fileName, string category)
        {
            var entry = new FeedEntry(fileName, category);

            using (var stream = part.Part.GetStream(FileMode.Open))
            {
                using (var sr = new StreamReader(stream))
                {
                    var manifest = PackageManifest.Deserialize(sr.ReadToEnd());

                    entry.Id     = manifest.Metadata.Identity.Id;
                    entry.Title  = manifest.Metadata.DisplayName;
                    entry.Author = new FeedEntryAuthor {
                        Name = manifest.Metadata.Identity.Publisher
                    };
                    entry.Content = new FeedEntryContent {
                        Src = BuildUri(category, fileName), Type = "octet/stream"
                    };
                    entry.Vsix = new FeedEntryVsix
                    {
                        Id      = manifest.Metadata.Identity.Id,
                        Version = manifest.Metadata.Identity.Version
                    };
                    entry.Summary  = manifest.Metadata.Description;
                    entry.MoreInfo = manifest.Metadata.MoreInfo;
                }
            }
            return(entry);
        }
Ejemplo n.º 3
0
 private static VsixItem ReadVsixV1(VsixPackagePartNode packageNode, byte[] content)
 {
     using (var stream = packageNode.Part.GetStream(FileMode.Open))
     {
         using (var sr = new StreamReader(stream))
         {
             var vsixManifest = PackageManifest.Deserialize(sr.ReadToEnd());
             return(new VsixItem(vsixManifest, content));
         }
     }
 }
Ejemplo n.º 4
0
        private static VsixItem ReadVsixV2(string name, VsixPackagePartNode packageNode, byte[] content)
        {
            using (var stream = packageNode.Part.GetStream(FileMode.Open))
            {
                using (var sr = new StreamReader(stream))
                {
                    var vsixSerializer = new VsixSerializer();
                    var vsixManifest   = vsixSerializer.Deserialize(sr) as Vsix;
                    if (vsixManifest == null)
                    {
                        throw new Exception("Could not deserialize VSIX manifest from " + name);
                    }

                    return(new VsixItem(vsixManifest, content));
                }
            }
        }