diff --git a/PackageIndexer/CsvUtils.cs b/PackageIndexer/CsvUtils.cs index ac2e8f1f..ad43f6f4 100644 --- a/PackageIndexer/CsvUtils.cs +++ b/PackageIndexer/CsvUtils.cs @@ -265,21 +265,11 @@ void AddCsvEntryToDict( string targetFramework ) { - bool includeXml = true; - - if (PlatformPackageDefinition.runtimePackagesWithoutDocs.Contains(packageEntry.Name) || - PlatformPackageDefinition.otherPackagesWithoutDocs.Contains(packageEntry.Name)) - includeXml = false; - - // And don't include XMl files for Microsoft.Bcl.* packages. - if (packageEntry.Name.StartsWith("Microsoft.Bcl.", StringComparison.InvariantCultureIgnoreCase)) - includeXml = false; - - string squareBrackets = $"[tfm={targetFramework};includeXml={includeXml}]"; + string squareBrackets = $"[tfm={targetFramework};includeXml={packageEntry.IncludeXmlDocs}]"; // Special case for System.ServiceModel.Primitives - use reference assemblies. if (string.Equals(packageEntry.Name, "System.ServiceModel.Primitives", StringComparison.InvariantCultureIgnoreCase)) - squareBrackets = $"[tfm={targetFramework};includeXml={includeXml};libpath=ref]"; + squareBrackets = $"[tfm={targetFramework};includeXml={packageEntry.IncludeXmlDocs};libpath=ref]"; CsvEntry entry = CsvEntry.Create( string.Concat("pac", _packageCounter[opsMoniker]++), diff --git a/PackageIndexer/PackageEntry.cs b/PackageIndexer/PackageEntry.cs index 68bbbb0c..0e97096b 100644 --- a/PackageIndexer/PackageEntry.cs +++ b/PackageIndexer/PackageEntry.cs @@ -2,24 +2,35 @@ public sealed class PackageEntry { - public static PackageEntry Create(string id, string version, string repo, IList frameworks) + public static PackageEntry Create( + string id, + string version, + string repo, + IList frameworks, + bool includeXmlDocs = true) { - return new PackageEntry(id, version, repo, frameworks); + return new PackageEntry(id, version, repo, frameworks, includeXmlDocs); } - private PackageEntry(string id, string version, string repo, IList frameworks) + private PackageEntry( + string id, + string version, + string repo, + IList frameworks, + bool includeXmlDocs) { Name = id; Version = version; Repository = repo; Frameworks = frameworks; + IncludeXmlDocs = includeXmlDocs; } - //public Guid Fingerprint { get; } public string Name { get; } public string Version { get; } public string Repository { get; } public IList Frameworks { get; } + public bool IncludeXmlDocs { get; set; } public void Write(Stream stream) { diff --git a/PackageIndexer/XmlEntryFormat.cs b/PackageIndexer/XmlEntryFormat.cs index c97074de..53939516 100644 --- a/PackageIndexer/XmlEntryFormat.cs +++ b/PackageIndexer/XmlEntryFormat.cs @@ -49,6 +49,15 @@ public static PackageEntry ReadPackageEntry(string packageIndexFile) frameworks.Add(frameworkElement.Value); } - return PackageEntry.Create(id, version, repo, frameworks); + bool includeXmlDocs = true; + + if (PlatformPackageDefinition.runtimePackagesWithoutDocs.Contains(id) || + PlatformPackageDefinition.otherPackagesWithoutDocs.Contains(id)) + includeXmlDocs = false; + + if (id.StartsWith("Microsoft.Bcl.", StringComparison.InvariantCultureIgnoreCase)) + includeXmlDocs = false; + + return PackageEntry.Create(id, version, repo, frameworks, includeXmlDocs); } }