public NugetPackagePluginCatalog(string packageName, string packageVersion = null, bool includePrerelease = false, NuGetFeed packageFeed = null, string packagesFolder = null, Action <TypeFinderCriteriaBuilder> configureFinder = null, Dictionary <string, TypeFinderCriteria> criterias = null, NugetPluginCatalogOptions options = null) { _packageName = packageName; _packageVersion = packageVersion; _includePrerelease = includePrerelease; _packageFeed = packageFeed; PackagesFolder = packagesFolder ?? Path.Combine(Path.GetTempPath(), "NugetPackagePluginCatalog", Path.GetRandomFileName()); if (!Directory.Exists(PackagesFolder)) { Directory.CreateDirectory(PackagesFolder); } if (criterias == null) { criterias = new Dictionary <string, TypeFinderCriteria>(); } _options = options ?? new NugetPluginCatalogOptions(); if (configureFinder != null) { var builder = new TypeFinderCriteriaBuilder(); configureFinder(builder); var criteria = builder.Build(); _options.TypeFinderOptions.TypeFinderCriterias.Add(criteria); } foreach (var finderCriteria in criterias) { finderCriteria.Value.Tags = new List <string>() { finderCriteria.Key }; _options.TypeFinderOptions.TypeFinderCriterias.Add(finderCriteria.Value); } }