AppDomain.CurrentDomain.AssemblyResolve

249 阅读1分钟
        static void Main(string[] args)
        {
            LoadAssemblies();
            MainCore(args);
        }
        
        [MethodImpl(MethodImplOptions.NoInlining)]
        static void MainCore(string[] args)
        {   

        }

        private static void LoadAssemblies()
        {
            AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(AssemblyLoadHandler); ;
        }

        private static Assembly AssemblyLoadHandler(object s, ResolveEventArgs a)
        {
            var installFolder = Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
            var assemblyPath = Path.Combine(installFolder, @"Test\", new AssemblyName(a.Name).Name + ".dll");
            if (File.Exists(assemblyPath))
                return Assembly.LoadFrom(assemblyPath);
            return null;
        }

为什么要[MethodImpl(MethodImplOptions.NoInlining)]

stackoverflow.com/questions/6…