Пример #1
0
        public static Dictionary <string, string> VerifyPdbFiles(this PdbFile pdbFile, IEnumerable <string> files)
        {
            Argument.IsNotNull(() => pdbFile);

            var missing             = new Dictionary <string, string>(StringComparer.OrdinalIgnoreCase);
            var actualFileChecksums = (from x in files
                                       select new KeyValuePair <string, string>(Hex.Encode(Crypto.GetMd5HashForFiles(new[] { x }).First().Item1), x)).ToDictionary(x => x.Value, x => x.Key);

            foreach (var checksumInfo in pdbFile.GetChecksums())
            {
                var file     = checksumInfo.Key;
                var checksum = checksumInfo.Value;

                if (!actualFileChecksums.ContainsValue(checksum))
                {
                    if (file.EndsWith(".xaml"))
                    {
                        // #64 ignore xaml files, not important
                        continue;
                    }

                    missing[file] = checksum;
                }
            }

            return(missing);
        }