in src/Tasks/Common/ConflictResolution/FrameworkListReader.cs [63:107]
private static IEnumerable<ConflictItem> LoadConflictItems(string frameworkListPath, Logger log)
{
if (!File.Exists(frameworkListPath))
{
// This is not an error, as we get both the root target framework directory as well as the Facades folder passed in as TargetFrameworkDirectories.
// Only the root will have a RedistList\FrameworkList.xml in it
return Enumerable.Empty<ConflictItem>();
}
var frameworkList = XDocument.Load(frameworkListPath);
var ret = new List<ConflictItem>();
foreach (var file in frameworkList.Root.Elements("File"))
{
var assemblyName = file.Attribute("AssemblyName")?.Value;
var assemblyVersionString = file.Attribute("Version")?.Value;
if (string.IsNullOrEmpty(assemblyName))
{
string errorMessage = string.Format(CultureInfo.CurrentCulture, Strings.ErrorParsingFrameworkListInvalidValue,
frameworkListPath,
"AssemblyName",
assemblyName);
log.LogError(errorMessage);
return Enumerable.Empty<ConflictItem>();
}
Version assemblyVersion;
if (string.IsNullOrEmpty(assemblyVersionString) || !Version.TryParse(assemblyVersionString, out assemblyVersion))
{
string errorMessage = string.Format(CultureInfo.CurrentCulture, Strings.ErrorParsingFrameworkListInvalidValue,
frameworkListPath,
"Version",
assemblyVersionString);
log.LogError(errorMessage);
return Enumerable.Empty<ConflictItem>();
}
ret.Add(new ConflictItem(assemblyName + ".dll",
packageId: null,
assemblyVersion: assemblyVersion,
fileVersion: null));
}
return ret;
}