Browse Source

Fix crash reported in #1820: Change Dictionary<string, DotNetCorePackageInfo> to DotNetCorePackageInfo array, because key is no longer used.

pull/1835/head
Siegfried Pammer 6 years ago
parent
commit
867d3d5755
  1. 10
      ICSharpCode.Decompiler/Metadata/DotNetCorePathFinder.cs

10
ICSharpCode.Decompiler/Metadata/DotNetCorePathFinder.cs

@ -60,7 +60,7 @@ namespace ICSharpCode.Decompiler.Metadata
"Microsoft.AspNetCore.All" "Microsoft.AspNetCore.All"
}; };
readonly Dictionary<string, DotNetCorePackageInfo> packages; readonly DotNetCorePackageInfo[] packages;
ISet<string> packageBasePaths = new HashSet<string>(StringComparer.Ordinal); ISet<string> packageBasePaths = new HashSet<string>(StringComparer.Ordinal);
readonly Version version; readonly Version version;
readonly string dotnetBasePath = FindDotNetExeDirectory(); readonly string dotnetBasePath = FindDotNetExeDirectory();
@ -82,13 +82,13 @@ namespace ICSharpCode.Decompiler.Metadata
return; return;
} }
packages = LoadPackageInfos(depsJsonFileName, targetFrameworkId).ToDictionary(i => i.Name); packages = LoadPackageInfos(depsJsonFileName, targetFrameworkId).ToArray();
foreach (var path in LookupPaths) { foreach (var path in LookupPaths) {
foreach (var pk in packages) { foreach (var p in packages) {
foreach (var item in pk.Value.RuntimeComponents) { foreach (var item in p.RuntimeComponents) {
var itemPath = Path.GetDirectoryName(item); var itemPath = Path.GetDirectoryName(item);
var fullPath = Path.Combine(path, pk.Value.Name, pk.Value.Version, itemPath).ToLowerInvariant(); var fullPath = Path.Combine(path, p.Name, p.Version, itemPath).ToLowerInvariant();
if (Directory.Exists(fullPath)) if (Directory.Exists(fullPath))
packageBasePaths.Add(fullPath); packageBasePaths.Add(fullPath);
} }

Loading…
Cancel
Save