using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace Ips.Library.Basic { public static class ResourceUtils { public static void LoadDllFromResource() { AppDomain.CurrentDomain.AssemblyResolve += (sender, args) => LoadFromResource(args.Name); } private static Assembly LoadFromResource(string argsName) { string dllName = new AssemblyName(argsName).Name + ".dll"; var assem = Assembly.GetCallingAssembly(); var resourceName = assem.GetManifestResourceNames().FirstOrDefault(rn => rn.EndsWith(dllName)); if (resourceName == null) return null; // 没找到程序集。 using (Stream stream = assem.GetManifestResourceStream(resourceName)) { byte[] assemblyData = new byte[stream.Length]; stream.Read(assemblyData, 0, assemblyData.Length); return Assembly.Load(assemblyData); } } } }