in src/NuGet.Core/NuGet.Packaging/PackageCreation/Authoring/ManifestReader.cs [72:176]
private static void ReadMetadataValue(ManifestMetadata manifestMetadata, XElement element, HashSet<string> allElements)
{
if (element.Value == null)
{
return;
}
allElements.Add(element.Name.LocalName);
string value = null;
try
{
value = element.Value.SafeTrim();
switch (element.Name.LocalName)
{
case "id":
manifestMetadata.Id = value;
break;
case "version":
if (NuGetVersion.TryParse(value, out NuGetVersion version))
{
manifestMetadata.Version = version;
}
break;
case "authors":
manifestMetadata.Authors = value?.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
break;
case "owners":
manifestMetadata.Owners = value?.Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
break;
case "licenseUrl":
manifestMetadata.SetLicenseUrl(value);
break;
case "projectUrl":
manifestMetadata.SetProjectUrl(value);
break;
case "iconUrl":
manifestMetadata.SetIconUrl(value);
break;
case "requireLicenseAcceptance":
manifestMetadata.RequireLicenseAcceptance = XmlConvert.ToBoolean(value);
break;
case "developmentDependency":
manifestMetadata.DevelopmentDependency = XmlConvert.ToBoolean(value);
break;
case "description":
manifestMetadata.Description = value;
break;
case "summary":
manifestMetadata.Summary = value;
break;
case "releaseNotes":
manifestMetadata.ReleaseNotes = value;
break;
case "copyright":
manifestMetadata.Copyright = value;
break;
case "language":
manifestMetadata.Language = value;
break;
case "title":
manifestMetadata.Title = value;
break;
case "tags":
manifestMetadata.Tags = value;
break;
case "readme":
manifestMetadata.Readme = value;
break;
case "serviceable":
manifestMetadata.Serviceable = XmlConvert.ToBoolean(value);
break;
case "dependencies":
manifestMetadata.DependencyGroups = ReadDependencyGroups(element);
break;
case "frameworkAssemblies":
manifestMetadata.FrameworkReferences = ReadFrameworkAssemblies(element);
break;
case "frameworkReferences":
manifestMetadata.FrameworkReferenceGroups = ReadFrameworkReferenceGroups(element);
break;
case "references":
manifestMetadata.PackageAssemblyReferences = ReadReferenceSets(element);
break;
case "contentFiles":
manifestMetadata.ContentFiles = ReadContentFiles(element);
break;
case "repository":
manifestMetadata.Repository = ReadRepository(element);
break;
case "license":
manifestMetadata.LicenseMetadata = ReadLicenseMetadata(element);
break;
case "icon":
manifestMetadata.Icon = value;
break;
}
}
catch (Exception ex) when (!(ex is InvalidDataException))
{
// Wrap the exception to pinpoint the exact property that is problematic,
// and include a hint about replacement tokens.
throw new InvalidDataException(string.Format(CultureInfo.CurrentCulture, NuGetResources.Manifest_PropertyValueReadFailure, value, element.Name.LocalName), ex);
}
}