| 12345678910111213141516171819202122232425262728293031323334 |
- 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);
- }
- }
- }
- }
|