コード例 #1
0
        private static Dependency ParseAssemblyName(AssemblyEntry assembly)
        {
            if (assembly == null)
            {
                throw new ArgumentNullException(nameof(assembly));
            }

            try
            {
                var project = assembly.GithubUrl;
                project = project.Replace("https://github.com/", "https://raw.githubusercontent.com/");
                project = project.Replace("/blob/master/", "/master/");

                using (var client = new WebClientEx())
                {
                    var dependency = Dependency.FromAssemblyEntry(assembly);
                    var content = client.DownloadString(project);
                    var assemblyNameMatch = Regex.Match(content, "<AssemblyName>(?<name>.*?)</AssemblyName>");
                    dependency.Name = assemblyNameMatch.Groups["name"].Value;

                    return dependency;
                }
            }
            catch
            {
                Console.WriteLine($"Invalid: {assembly.Id} - {assembly.GithubUrl}");
            }

            return null;
        }