protected override void GetMetadata(string path, string repository, out PackageProject project, out IList<MetadataEntry> metadata, out ILookup<ContentType, string> contents) { var assemblyExporter = new DefaultAssemblyExporter(); var packageInfo = new FolderRepository(LocalFileSystem.Instance.GetDirectory(path)).PackagesByName.Single().Single(); var package = packageInfo.Load(); var descriptor = package.Descriptor; var exports = assemblyExporter .Items<Exports.IAssembly>(package, ExecutionEnvironment.Any) .SelectMany(group => group) .GroupBy(assembly => new { assembly.Profile, assembly.Platform }); project = new PackageProject { Name = descriptor.Name, Repository = repository, Version = new PackageVersion { Name = descriptor.Version.ToString(), Compilations = exports .Select(group => new PackageCompilation { Mode = "Release", Platform = group.Key.Profile + "-" + group.Key.Platform, ImageFiles = group .Select(assembly => new PackageImageFile { Name = GetAssemblyPath(assembly.File.Path, path) }).ToArray(), }).ToArray(), }, }; using (var zip = new ZipFile(GetFilePath(path))) contents = zip.EntryFileNames.ToLookup(GetContentType); metadata = new List<MetadataEntry>(); }