当前位置: 首页 > news >正文

C# 将Dll嵌入exe中发布

一、制作模版Dll

二、在exe工程中添加Dll

1、添加上述“创建Dll”,并修改属性为:不复制到输出目录的嵌入资源

2、引用“Resource”中的dll文件,并修改属性:不复制到本地

三、添加重载Dll代码

1、添加以下代码

    class DependentFiles{/// <summary>/// 载入资源文件中附带的所有dll文件/// </summary>public static void LoadResourceDll(){AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(CurrentDomain_AssemblyResolve);}private static System.Reflection.Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args){var assemblyName = Assembly.GetExecutingAssembly().GetName().Name;var nameSpace = assemblyName;//一般程序集名称和默认命名空间是一致的,当不一致的时候你可以用下面的方法。//var nameSpace = typeof(Program).Namespace;var resourceName = string.Format("{0}.Resources.{1}.dll", nameSpace, new AssemblyName(args.Name).Name);using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(resourceName)){if (stream != null){var assemblyData = new byte[stream.Length];stream.Read(assemblyData, 0, assemblyData.Length);return Assembly.Load(assemblyData);}else{throw new System.IO.FileLoadException(resourceName);}}}}

2、在“Program”中注册使用

移动位置后,同样可以使用。但要注意看别人经验,对于远程等特殊情况,此方法可能失效。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • xss.function靶场(hard)
  • ECMAScript6块级声明:let声明、const声明
  • zabbix7.0 设置中文语言( Debian GNU/Linux 12)
  • pox破晓工作流部署过程
  • 【自动驾驶】无人驾驶中的“先验”和“后验”
  • 【ARM 芯片 安全与攻击 5.4 -- Meltdown 攻击与防御介绍】
  • C++入门——03内存管理
  • 数据结构----链表
  • 【iOS】—— 离屏渲染
  • REPO转GIT遇一问题
  • Linux - 权限
  • 深入理解HTTPS协议:CA证书的安全机制
  • B站搜索建库架构优化实践
  • 为什么要有二级指针
  • 第三章 PyTorch基础教程
  • 【个人向】《HTTP图解》阅后小结
  • Android 架构优化~MVP 架构改造
  • android图片蒙层
  • HTML-表单
  • JavaScript创建对象的四种方式
  • JavaScript实现分页效果
  • Netty 框架总结「ChannelHandler 及 EventLoop」
  • Node 版本管理
  • npx命令介绍
  • Rancher-k8s加速安装文档
  • Spark学习笔记之相关记录
  • Web标准制定过程
  • 纯 javascript 半自动式下滑一定高度,导航栏固定
  • 从0实现一个tiny react(三)生命周期
  • 飞驰在Mesos的涡轮引擎上
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 聊聊flink的BlobWriter
  • 强力优化Rancher k8s中国区的使用体验
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • zabbix3.2监控linux磁盘IO
  • 格斗健身潮牌24KiCK获近千万Pre-A轮融资,用户留存高达9个月 ...
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • #Datawhale AI夏令营第4期#AIGC方向 文生图 Task2
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (MIT博士)林达华老师-概率模型与计算机视觉”
  • (二)fiber的基本认识
  • (二)windows配置JDK环境
  • (二)原生js案例之数码时钟计时
  • (分类)KNN算法- 参数调优
  • (原創) 物件導向與老子思想 (OO)
  • (转)Android学习笔记 --- android任务栈和启动模式
  • .NET Compact Framework 3.5 支持 WCF 的子集
  • .NET CORE Aws S3 使用
  • .NET/ASP.NETMVC 深入剖析 Model元数据、HtmlHelper、自定义模板、模板的装饰者模式(二)...
  • .NET/C# 异常处理:写一个空的 try 块代码,而把重要代码写到 finally 中(Constrained Execution Regions)
  • .NET中分布式服务
  • /var/log/cvslog 太大
  • :not(:first-child)和:not(:last-child)的用法
  • @param注解什么意思_9000字,通俗易懂的讲解下Java注解