设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 创业者 手机 数据
当前位置: 首页 > 服务器 > 系统 > 正文

将dll文件嵌入exe程序

发布时间:2021-01-07 01:07 所属栏目:52 来源:网络整理
导读:最近在开发一个安装程序,需要将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文件 

  

将dll文件嵌入exe程序

  4. 在项目的应用中仍然需要添加对该 dll文件的应用,否则编译无法通过,但是将引用的dll文件的属性面板中 复制到本地的属性修改为 False,?

  

将dll文件嵌入exe程序

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读