Helpers/MsalNativeResolver.cs
|
using System;
using System.IO; using System.Reflection; using System.Runtime.InteropServices; public static class MsalNativeResolver { private static string _nativePath; private static string _fileName; private static bool _registered; public static void RegisterFor(Assembly assembly, string nativePath) { _nativePath = nativePath; _fileName = Path.GetFileNameWithoutExtension(nativePath); if (_registered) return; NativeLibrary.SetDllImportResolver(assembly, Resolve); _registered = true; } private static IntPtr Resolve(string name, Assembly asm, DllImportSearchPath? sp) { if (name.Equals(_fileName, StringComparison.OrdinalIgnoreCase)) { if (File.Exists(_nativePath)) { return NativeLibrary.Load(_nativePath); } } return IntPtr.Zero; } } |