From d5ef9fcf1f74585da86b0d75916a9d09f4bacf9d Mon Sep 17 00:00:00 2001 From: David Wengier Date: Mon, 14 Nov 2022 08:25:45 +1100 Subject: [PATCH] Prevent FileNotFoundException --- .../CSharp/DecompiledSource/AssemblyResolver.cs | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/EditorFeatures/CSharp/DecompiledSource/AssemblyResolver.cs b/src/EditorFeatures/CSharp/DecompiledSource/AssemblyResolver.cs index df3bbba9b5e4a..c48ebf2508246 100644 --- a/src/EditorFeatures/CSharp/DecompiledSource/AssemblyResolver.cs +++ b/src/EditorFeatures/CSharp/DecompiledSource/AssemblyResolver.cs @@ -131,8 +131,19 @@ PEFile MakePEFile(IAssemblySymbol assembly) // reference assemblies should be fine here, we only need the metadata of references. var reference = _parentCompilation.GetMetadataReference(assembly); Log(CSharpEditorResources.Load_from_0, reference.Display); - return TryResolve(reference, PEStreamOptions.PrefetchMetadata) - ?? new PEFile(reference.Display, PEStreamOptions.PrefetchMetadata); + + var result = TryResolve(reference, PEStreamOptions.PrefetchMetadata); + if (result is not null) + { + return result; + } + + if (File.Exists(reference.Display)) + { + return new PEFile(reference.Display, PEStreamOptions.PrefetchMetadata); + } + + return null; } }