将dll文件嵌入exe程序
发布时间:2020-12-14 05:56:59 所属栏目:Windows 来源:网络整理
导读:最近在开发一个安装程序,需要将dll文件嵌入到exe中,保证编译出来的程序只有一个 .exe 文件 1. 首先定义个函数用来动态获取dll文件 private static Assembly CurrentDomain_AssemblyResolve( object sender,ResolveEventArgs args){ string resourceName = "
最近在开发一个安装程序,需要将dll文件嵌入到exe中,保证编译出来的程序只有一个 .exe 文件 1. 首先定义个函数用来动态获取dll文件 private static Assembly CurrentDomain_AssemblyResolve(object sender,ResolveEventArgs args) { string resourceName = "MyProject." + new AssemblyName(args.Name).Name + ".dll"; using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)) { byte[] assemblyData = new byte[stream.Length]; stream.Read(assemblyData,0,assemblyData.Length); return Assembly.Load(assemblyData); } } 2. 在Main函数中 添加一行代码,在程序解析程序集失败事件触发时 调用上面的方法动态加载程序集 AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);
3. 将需要嵌入的dll文件添加到工程中 在文件的属性面板中 生成操作属性修改为嵌入资源? 否则在exe中将找不到该dll文件
4. 在项目的应用中仍然需要添加对该 dll文件的应用,否则编译无法通过,但是将引用的dll文件的属性面板中 复制到本地的属性修改为 False,?
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |