예제 #1
0
        public override string ToString()
        {
            var output = Name;

            if (VersionRange != null)
            {
                output = $"{output} {VersionRange.ToNonSnapshotRange().PrettyPrint()}";
            }

            // Append the type constraint in a user friendly way if one exists
            var contraintString = string.Empty;

            switch (TypeConstraint)
            {
            case LibraryDependencyTarget.Reference:
                contraintString = LibraryType.Reference;
                break;

            case LibraryDependencyTarget.ExternalProject:
                contraintString = LibraryType.ExternalProject;
                break;

            case LibraryDependencyTarget.Project:
            case LibraryDependencyTarget.Project | LibraryDependencyTarget.ExternalProject:
                contraintString = LibraryType.Project;
                break;
            }

            if (!string.IsNullOrEmpty(contraintString))
            {
                output = $"{contraintString}/{output}";
            }

            return(output);
        }
예제 #2
0
        /// <summary>
        /// Format an id and include the range only if it has bounds.
        /// </summary>
        public static string FormatDependency(string id, VersionRange range)
        {
            if (range == null || !(range.HasLowerBound || range.HasUpperBound))
            {
                return(id);
            }

            return($"{id} {range.ToNonSnapshotRange().PrettyPrint()}");
        }
예제 #3
0
        public NugetPackage(string id, string version, string targetFramework, string source, string[] dependenciesSources, string var, NugetPackageType packageType, string packagesRoot, bool dependeciesForceMinVersion = true)
        {
            Dependencies = new List <NugetDependency>();
            Libraries    = new List <string>();
            Id           = id;
            VersionRange = NuGet.Versioning.VersionRange.Parse(System.Environment.ExpandEnvironmentVariables(version));
            MinVersion   = VersionRange.ToNonSnapshotRange().MinVersion.ToString();
            DependenciesForceMinVersion = dependeciesForceMinVersion;

            if (string.IsNullOrEmpty(source))
            {
                throw new Exception(string.Format("Invalid source for the package id {0};{1}. The source parameter is mandatory.", Id, MinVersion));
            }
            Source = TryGetUri(source);

            DependencySources = new List <Uri>();
            if (dependenciesSources != null)
            {
                foreach (var src in dependenciesSources)
                {
                    DependencySources.Add(TryGetUri(src));
                }
            }
            RootPath = packagesRoot;

            SetDotNetLibInformation(targetFramework, packageType);

            EnvironmentVariableKeys = new List <string>();
            EnvironmentVariableKeys.Add(EscapeStringAsEnvironmentVariableAsKey(Id));
            EnvironmentVariableKeys.Add(GetVersionEnvironmentVariableKey(Id));
            EnvironmentVariableKeys.Add(GetFrameworkEnvironmentVariableKey(Id));

            //Alaways set the "default" key value
            Environment.SetEnvironmentVariable(EscapeStringAsEnvironmentVariableAsKey(Id), FullPath);
            Environment.SetEnvironmentVariable(GetVersionEnvironmentVariableKey(Id), MinVersion);
            Environment.SetEnvironmentVariable(GetFrameworkEnvironmentVariableKey(Id), TargetFramework);

            if (!string.IsNullOrEmpty(var)) //If requested, set also the user specified value
            {
                EnvironmentVariableAdditionalKey = var;
                if (Environment.GetEnvironmentVariable(EnvironmentVariableAdditionalKey) == null)
                {
                    Environment.SetEnvironmentVariable(EnvironmentVariableAdditionalKey, FullPath);
                }
            }
        }