| File: XamlCAssemblyResolver.cs | Web Access |
| Project: src\src\Controls\src\Build.Tasks\Controls.Build.Tasks.csproj (Microsoft.Maui.Controls.Build.Tasks) |
using System; using Mono.Cecil; namespace Microsoft.Maui.Controls.Build.Tasks { class XamlCAssemblyResolver : DefaultAssemblyResolver { public void AddAssembly(string p) { RegisterAssembly(AssemblyDefinition.ReadAssembly(p, new ReaderParameters { AssemblyResolver = this })); } public override AssemblyDefinition Resolve(AssemblyNameReference name) { if (TryResolve(name, out AssemblyDefinition assembly)) return assembly; if (IsMscorlib(name) && (TryResolve(AssemblyNameReference.Parse("mscorlib"), out assembly) || TryResolve(AssemblyNameReference.Parse("System.Private.CoreLib"), out assembly) || TryResolve(AssemblyNameReference.Parse("netstandard"), out assembly) || TryResolve(AssemblyNameReference.Parse("System.Runtime"), out assembly))) return assembly; throw new AssemblyResolutionException(name); } bool TryResolve(AssemblyNameReference assemblyNameReference, out AssemblyDefinition assembly) { try { assembly = base.Resolve(assemblyNameReference); return true; } catch (AssemblyResolutionException) { assembly = null; return false; } } static bool IsMscorlib(AssemblyNameReference name) { return name.Name == "mscorlib" || name.Name == "System.Private.CoreLib" || name.Name == "System.Runtime" || name.Name == "netstandard"; } } }