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

WPF将dll文件嵌入到exe文件中

WPF将dll文件嵌入到exe文件中

第一步:打开.csproj文件,在Import节点后添加如下代码:

<Target Name="AfterResolveReferences"><ItemGroup><EmbeddedResource Include="@(ReferenceCopyLocalPaths)" Condition="'%(ReferenceCopyLocalPaths.Extension)' == '.dll'"><LogicalName>%(ReferenceCopyLocalPaths.DestinationSubDirectory)%(ReferenceCopyLocalPaths.Filename)%(ReferenceCopyLocalPaths.Extension)</LogicalName></EmbeddedResource></ItemGroup></Target>

第二步:在App.xaml.cs文件中添加如下代码:

private static Assembly OnResolveAssembly(object sender, ResolveEventArgs args){Assembly executingAssembly = Assembly.GetExecutingAssembly();var executingAssemblyName = executingAssembly.GetName();var resName = executingAssemblyName.Name + ".resources";AssemblyName assemblyName = new AssemblyName(args.Name); string path = "";if (resName == assemblyName.Name){path = executingAssemblyName.Name + ".g.resources"; ;}else{path = assemblyName.Name + ".dll";if (assemblyName.CultureInfo.Equals(CultureInfo.InvariantCulture) == false){path = String.Format(@"{0}\{1}", assemblyName.CultureInfo, path);}}using (Stream stream = executingAssembly.GetManifestResourceStream(path)){if (stream == null)return null;byte[] assemblyRawBytes = new byte[stream.Length];stream.Read(assemblyRawBytes, 0, assemblyRawBytes.Length);return Assembly.Load(assemblyRawBytes);}}protected override void OnStartup(StartupEventArgs e){base.OnStartup(e);AppDomain.CurrentDomain.AssemblyResolve += OnResolveAssembly;}

此时,dll文件就嵌入exe内了;

http://www.lryc.cn/news/379877.html

相关文章:

  • 2024年AI+游戏赛道的公司和工具归类总结
  • svm和决策树基本知识以及模型评价以及模型保存
  • C++ 79 之 自己写异常类
  • 如何搭建一个成功的短剧制作平台
  • kotlin类
  • android | studio的UI布局和代码调试 | UI调试 (用于找到项目源码)
  • LangChain实战技巧之六:一起玩转config(上篇)——ConfigurableField
  • 扫码称重上位机
  • 操作系统入门 -- 进程的通信方式
  • Python读取wps中的DISPIMG图片格式
  • elasticsearch的入门与实践
  • 神经网络学习6-线性层
  • PHP框架详解 - CodeIgniter 框架
  • 奔驰EQS SUV升级原厂主动式氛围灯效果展示
  • echarts Y轴展示时间片段,series data数据 也是时间片段,鼠标放上去 提示框显示对应的时间片段
  • 20. mediasoup服务器的布署与使用
  • 【leetcode--同构字符串】
  • shell expr功能详解
  • java继承Thead类和实现Runnable接口创建线程的区别
  • interface Ref<T = any> 这是什么写法?为什么写接口还需要加上<T = any>
  • 深入探索 MongoDB GridFS:高效大文件存储与管理的全面指南
  • 基于CentOS Stream 9平台 安装/卸载 Redis7.0.15
  • 激励-保健理论和公平理论
  • 深入探索 Spring Boot 自定义启动画面
  • Redis实战—Redis分布式锁
  • 联想Y7000P 2023款拆机教程及升级内存教程
  • 开发常用依赖
  • 【区分vue2和vue3下的element UI Empty 空状态组件,分别详细介绍属性,事件,方法如何使用,并举例】
  • 【AI作曲】毁掉音乐?早该来了!一个网易音乐人对于 AI 大模型音乐创作的思辨
  • RabbitMQ实践——最大长度队列