From 795708afae37ab17eeec1c6b4b02f85054a7824e Mon Sep 17 00:00:00 2001 From: Kirill Osenkov Date: Mon, 10 Jun 2024 15:21:13 -0700 Subject: [PATCH] Don't resolve desktop Microsoft.VisualBasic.dll from Core Fixes #347 --- ILRepack/RepackAssemblyResolver.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ILRepack/RepackAssemblyResolver.cs b/ILRepack/RepackAssemblyResolver.cs index 13d2c4b8..c67577d4 100644 --- a/ILRepack/RepackAssemblyResolver.cs +++ b/ILRepack/RepackAssemblyResolver.cs @@ -109,10 +109,18 @@ private AssemblyDefinition TryResolve(AssemblyNameReference name, ReaderParamete systemRuntimeVersion = name.Version; } + bool resolveFromCoreFirst = IsFrameworkName(name.Name) && name.Version > netcoreVersionBoundary; + + // see https://github.com/gluck/il-repack/issues/347 + if (name.Name.Equals("Microsoft.VisualBasic", StringComparison.OrdinalIgnoreCase) && name.Version.Major <= 10) + { + resolveFromCoreFirst = false; + } + // heuristic: assembly more likely to be Core after that version. // Try to resolve from Core first to prevent the base resolver // from resolving Core assemblies from the GAC - if (IsFrameworkName(name.Name) && name.Version > netcoreVersionBoundary) + if (resolveFromCoreFirst) { var fromCore = TryResolveFromCoreFixVersion(name); if (fromCore != null)