private void WriteReferences(StringBuilder sb)
{
sb.Append("<div class=\"folderTitle\">References</div>");
sb.AppendLine("<div class=\"folder\">");
var assemblyNames = new SortedSet<string>();
foreach (var projectReference in Project.ProjectReferences.Select(p => Project.Solution.GetProject(p.ProjectId).AssemblyName))
{
assemblyNames.Add(projectReference);
}
foreach (var metadataReference in Project.MetadataReferences.Select(m => Path.GetFileNameWithoutExtension(m.Display)))
{
assemblyNames.Add(metadataReference);
}
var usedReferences = new HashSet<string>(this.UsedReferences, StringComparer.OrdinalIgnoreCase);
foreach (var reference in assemblyNames)
{
var externalIndex = this.SolutionGenerator.GetExternalAssemblyIndex(reference);
string url = "/#" + reference;
if (externalIndex != -1)
{
url = "@" + externalIndex.ToString() + "@#" + reference;
sb.AppendLine(Markup.GetProjectExplorerReference(url, reference));
}
else if (SolutionGenerator.IsPartOfSolution(reference) && usedReferences.Contains(reference))
{
sb.AppendLine(Markup.GetProjectExplorerReference(url, reference));
}
else
{
sb.AppendLine("<span class=\"referenceDisabled\">" + reference + "</span>");
}
}
sb.AppendLine("</div>");
}