コード例 #1
0
            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)}");
                }
            }
コード例 #2
0
 internal PackageReference(string name, string version, string dotNetHint, AssetsDependency privateAssets, string referenceType)
 {
     Name          = name;
     Version       = version;
     DotNetHint    = dotNetHint;
     PrivateAssets = privateAssets;
     ReferenceType = referenceType;
 }
コード例 #3
0
 internal PackageReference(string name, string version, string dotNetHint, AssetsDependency privateAssets)
     : this(name, version, dotNetHint, privateAssets, null)
 {
 }
コード例 #4
0
 public void Add(string packageName, string version, string dotNetHint, AssetsDependency privateAssets)
 {
     Add(packageName, version, dotNetHint, privateAssets, null);
 }
コード例 #5
0
        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))}.");
            }
        }