将Dll嵌入到exe中
- 将Dll加载到工程中,生成操作是”嵌入的资源”
在系统启动时加入程序集监听,代码如下:
//在系统启动时加入程序集监听 AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve; private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args) { string dllName = new AssemblyName(args.Name).Name + ".dll"; var assem = Assembly.GetExecutingAssembly(); string resourceName = assem.GetManifestResourceNames().FirstOrDefault(rn => rn.EndsWith(dllName)); if (resourceName == null) return null; using (var stream = assem.GetManifestResourceStream(resourceName)) { byte[] assemblyData = new byte[stream.Length]; stream.Read(assemblyData, 0, assemblyData.Length); return Assembly.Load(assemblyData); } }