internal static IEnumerable <string> GetFormatedAssetsDependency(AssetsDependency dependency) { if (dependency == AssetsDependency.None) { yield return("none"); yield break; } if (dependency == AssetsDependency.All) { yield return("all"); yield break; } foreach (var value in (AssetsDependency[])Enum.GetValues(typeof(AssetsDependency))) { if (!dependency.HasFlag(value) || value == AssetsDependency.All || value == AssetsDependency.None) { continue; } var name = Enum.GetName(typeof(AssetsDependency), value); // The first letter of assets values are in lower case (example: 'contentFiles') yield return($"{char.ToLower(name[0])}{name.Substring(1)}"); } }
internal PackageReference(string name, string version, string dotNetHint, AssetsDependency privateAssets, string referenceType) { Name = name; Version = version; DotNetHint = dotNetHint; PrivateAssets = privateAssets; ReferenceType = referenceType; }
internal PackageReference(string name, string version, string dotNetHint, AssetsDependency privateAssets) : this(name, version, dotNetHint, privateAssets, null) { }
public void Add(string packageName, string version, string dotNetHint, AssetsDependency privateAssets) { Add(packageName, version, dotNetHint, privateAssets, null); }
public void Add(string packageName, string version, string dotNetHint = null, AssetsDependency privateAssets = DefaultPrivateAssets, string referenceType = null) { // check package unicity var existingPackage = _packageReferences.FirstOrDefault(pr => pr.Name == packageName); if (existingPackage == null) { _packageReferences.Add(new PackageReference(packageName, version, null, privateAssets, referenceType)); return; } if (existingPackage.Version != version) { Builder.Instance.LogWarningLine($"Package {packageName} was added twice with versions {version} and {existingPackage.Version}. Version {version} will be used."); existingPackage.Version = version; } if (privateAssets != existingPackage.PrivateAssets) { existingPackage.PrivateAssets &= privateAssets; Builder.Instance.LogWarningLine($"Package {packageName} was added twice with different private assets. Kept assets are {string.Join(",", PackageReference.GetFormatedAssetsDependency(existingPackage.PrivateAssets))}."); } }