Ejemplo n.º 1
0
        /// <summary>
        /// Formatted to a System.Versioning.FrameworkName
        /// </summary>
        public string GetDotNetFrameworkName(IFrameworkNameProvider mappings)
        {
            // Check for rewrites
            var framework = mappings.GetFullNameReplacement(this);

            if (framework.IsNet5Era)
            {
                return(GetShortFolderName());
            }
            else if (framework.IsSpecificFramework)
            {
                var parts = new List <string>(3)
                {
                    Framework
                };

                parts.Add(string.Format(CultureInfo.InvariantCulture, "Version=v{0}", GetDisplayVersion(framework.Version)));

                if (!string.IsNullOrEmpty(framework.Profile))
                {
                    parts.Add(string.Format(CultureInfo.InvariantCulture, "Profile={0}", framework.Profile));
                }

                return(string.Join(",", parts));
            }
            else
            {
                return(string.Format(CultureInfo.InvariantCulture, "{0},Version=v0.0", framework.Framework));
            }
        }
        private void LoadAvailableFrameworks()
        {
            var version  = Environment.Version;
            var revision = version.Revision;

            var frameworkStringList = new List <string>();

            if (revision < 42000 && revision > 0)
            {
                GetOlderFrameworkVersionsFromRegistry(frameworkStringList);
            }
            else
            {
                GetNewerFrameworkVersionsFromRegistry(frameworkStringList);
            }

#if NETCORE
            var netCoreDescription = System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription;
            if (netCoreDescription.Contains(".NET Core"))
            {
                frameworkStringList.Add($".NETCoreApp,Version=v{version.Major}.{version.Minor}");
            }
            else
            {
                if (version.Major >= 5)
                {
                    // Support .NET 5+
                    frameworkStringList.Add($".NETCoreApp,Version=v{version.Major}.0");
                }
            }
#endif
            foreach (var frameworkName in frameworkStringList.Distinct())
            {
                var targetFramework = FrameworkParser.TryParseFrameworkName(frameworkName, _frameworkNameProvider);

                if (targetFramework != NuGetFramework.UnsupportedFramework)
                {
                    targetFramework = _frameworkNameProvider.GetFullNameReplacement(targetFramework);

                    _nuGetFrameworks.Add(targetFramework);
                }
            }
        }