public override void Write(XmlWriter writer, Project project, IMSBuildProjectGeneratorContext context)
{
writer.WriteStartElement("ItemGroup");
var orderedFiles = GetOrderedFiles(project);
foreach (var pair in orderedFiles)
{
var file = pair.Item1;
var sourceSetType = pair.Item2;
var relativePath = ToProjectRelativePath(project, file, ProjectSourceSetName);
var logicalPath = GetLogicalPath(project, file, sourceSetType);
// We have to skip .csproj files, which are generated by bari to the source set because otherwise
// VisualStudio does not work as expected:
if (!IgnoredExtensions.Any(ext => relativePath.EndsWith(ext, StringComparison.InvariantCultureIgnoreCase)))
{
writer.WriteStartElement(GetElementNameFor(project, file));
writer.WriteAttributeString("Include", relativePath);
if (ProjectSourceSetName != sourceSetType)
writer.WriteElementString("LogicalName", logicalPath);
WriteAdditionalOptions(writer, project, file);
writer.WriteEndElement();
}
}
writer.WriteEndElement();
}