diff --git a/src/Tools/BuildBoss/InternalsVisibleTo.cs b/src/Tools/BuildBoss/InternalsVisibleTo.cs index 74852c2c79b644c9908ca70f1cbdf4c30cfc7514..455624476af3ec2b267baf990696839f3b43a90a 100644 --- a/src/Tools/BuildBoss/InternalsVisibleTo.cs +++ b/src/Tools/BuildBoss/InternalsVisibleTo.cs @@ -21,13 +21,24 @@ public override string ToString() { var element = new XElement("InternalsVisibleTo"); if (TargetAssembly is object) + { element.Add(new XAttribute("Include", TargetAssembly)); + } + if (PublicKey is object) + { element.Add(new XAttribute("Key", PublicKey)); + } + if (LoadsWithinVisualStudio is object) + { element.Add(new XAttribute("LoadsWithinVisualStudio", LoadsWithinVisualStudio)); + } + if (WorkItem is object) + { element.Add(new XAttribute("WorkItem", WorkItem)); + } return element.ToString(); } diff --git a/src/Tools/BuildBoss/ProjectCheckerUtil.cs b/src/Tools/BuildBoss/ProjectCheckerUtil.cs index 486ad9eb35e5a504c6dc769cdf70295fa8986448..b1e3b95e47c342361a1c399e3fd51a51845e6f3b 100644 --- a/src/Tools/BuildBoss/ProjectCheckerUtil.cs +++ b/src/Tools/BuildBoss/ProjectCheckerUtil.cs @@ -255,8 +255,14 @@ private bool CheckInternalsVisibleTo(TextWriter textWriter) continue; } - if (Uri.TryCreate(internalsVisibleTo.WorkItem, UriKind.Absolute, out _)) + if (!string.IsNullOrEmpty(internalsVisibleTo.WorkItem)) { + if (!Uri.TryCreate(internalsVisibleTo.WorkItem, UriKind.Absolute, out _)) + { + textWriter.WriteLine($"InternalsVisibleTo for external assembly '{internalsVisibleTo.TargetAssembly}' does not have a valid URI specified for {nameof(InternalsVisibleTo.WorkItem)}."); + allGood = false; + } + // A work item is tracking elimination of this IVT continue; }