Пример #1
0
        public void Parse(string line, WrapDescriptor descriptor)
        {
            var bits = line.Split(new[] { " " }, StringSplitOptions.RemoveEmptyEntries);
            if (bits == null || bits.Length < 2 || string.Compare(bits[0], "depends", StringComparison.OrdinalIgnoreCase) != 0)
                return;

            var packageName = bits[1];

            // Versions are always in the format
            // comparator version ('and' comparator version)*

            //List<VersionVertice> vertices = new List<VersionVertice>();
            //if (bits.Length - 2 >= 2)
            //{
            //    vertices.Add(GetVersionVertice(bits, 2));
            //    for (int i = 0; i < (bits.Length - 4) / 3; i++)
            //        if (string.Compare(bits[4], "and", StringComparison.OrdinalIgnoreCase) == 0)
            //            vertices.Add(GetVersionVertice(bits, 5 + (i * 3)));
            //}
            //else
            //{
            //    vertices.Add(new AnyVersionVertice(null));
            //}
            descriptor.Dependencies.Add(new WrapDependency
                       {
                           Name = packageName,
                           VersionVertices = Parse(bits.Skip(2).ToArray()).ToList()
                       });
        }
Пример #2
0
 public IEnumerable<IAssemblyReferenceExportItem> GetAssemblyReferences(WrapDescriptor descriptor, IWrapRepository repository, IWrapAssemblyClient client)
 {
     return (from dependency in descriptor.Dependencies
             let package = repository.Find(dependency)
             where package != null
             let items = package.Load().GetExport("bin", client.Environment).Items.OfType<IAssemblyReferenceExportItem>()
             select items).SelectMany(x => x);
 }
Пример #3
0
 void LoadDescriptor()
 {
     using (var zip = new ZipFile(_wrapFile.FullName))
     {
         var descriptor = zip.Cast<ZipEntry>().FirstOrDefault(x => x.Name.EndsWith(".wrapdesc"));
         if (descriptor == null)
             throw new InvalidOperationException("The package '{0}' doesn't contain a valid .wrapdesc file.");
         using (var stream = zip.GetInputStream(descriptor))
             Descriptor = new WrapDescriptorParser().ParseFile(descriptor.Name, stream);
     }
 }