iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >.net加载失败的程序集怎么实现重新加载
  • 217
分享到

.net加载失败的程序集怎么实现重新加载

2023-07-02 14:07:31 217人浏览 泡泡鱼
摘要

这篇文章主要介绍“.net加载失败的程序集怎么实现重新加载”,在日常操作中,相信很多人在.net加载失败的程序集怎么实现重新加载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”.net加载失败的程序集怎么实现重

这篇文章主要介绍“.net加载失败的程序集怎么实现重新加载”,在日常操作中,相信很多人在.net加载失败的程序集怎么实现重新加载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”.net加载失败的程序集怎么实现重新加载”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

在.net程序中,程序集是Lazy加载的,只有在用的时候才会去加载,当程序集加载失败时,会触发AppDomain.AssemblyResolve的事件,在这个事件中,我们甚至还可以进行补救,从别得地方重新加载程序集。

AppDomain.CurrentDomain.AssemblyResolve += (s, e) =>{    byte[] content = getLibBytes(e.Name);    return Assembly.Load(content);};

这个功能如果使用起来就非常灵活了,它可以控制我们自由控制程序集的加载方式。常用的方法有如下几个:

程序集保护:

.net程序是非常容易反编译的,这个特性提供了混淆外的另一个方式。由于动态调用的方式下,程序集不需要是原始dll,甚至都不需要存储在磁盘上。可以通过直接不让使用者获取到程序集的dll的方式防止反编译。

发布的程序的时候,不直接发布需要保护的程序集,将程序集加密后发布,或者直接加密后存储在服务器上。使用的时候,在AssemblyResolve中获取加密后的程序集,解密后返回。

程序集合并:

WPF程序由于使用了反射,使用传统的ILMerge的方式合并后,由于程序集变化了,往往不能正常工作。

有很多工具,通过将程序集合并到exe的资源文件中,使用的时候,再在ssemblyResolve中从资源文件中获取程序集返回。

客户端更新:

CS模式的程序一个不足就是更新不方便,可以将程序集存储在文件数据库中,直接更新程序集数据库就可以很方便的实现程序集更新。

程序集存储分离:

使用微服务模式时,很多部署在同一个服务器上的服务共用着相同的程序集(第三方的Nuget库),这些程序集更新频率很低,并且混在一起存储使得我们不容易找到业务程序集。

可以将这些程序集集中存储在独立的位置。服务文件夹中只发布我们的业务程序集,看起来更加清晰,更新也更加方便。

.net core

在.Net Core中,这个机制也是可以使用的,不过接口发生了一点变化:

AssemblyLoadContext.Default.Resolving += (context, assembly) =>{    var content = getLibBytes(assembly.FullName);    return Assembly.Load(content);};

需要说明的是,如果是使用 dotnet xxx.dll 的方式运行的话,dotnet 程序会首先通过 xxx.deps.JSON文件来获取所有相关的依赖性,从而还没有进入程序就报错。

可以通过修改 xxx.deps.json去掉依赖项,或者干脆直接删掉xxx.deps.json解决这个问题。

到此,关于“.net加载失败的程序集怎么实现重新加载”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: .net加载失败的程序集怎么实现重新加载

本文链接: https://www.lsjlt.com/news/342559.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • .net加载失败的程序集实现重新加载
    在.net程序中,程序集是Lazy加载的,只有在用的时候才会去加载,当程序集加载失败时,会触发AppDomain.AssemblyResolve的事件,在这个事件中,我们甚至还可以进...
    99+
    2024-04-02
  • .net加载失败的程序集怎么实现重新加载
    这篇文章主要介绍“.net加载失败的程序集怎么实现重新加载”,在日常操作中,相信很多人在.net加载失败的程序集怎么实现重新加载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”.net加载失败的程序集怎么实现重...
    99+
    2023-07-02
  • mysql加载驱动失败怎么办
    mysql加载驱动失败的解决方法:首先,进入mysql安装目录,并在安装目录中查找到libmysql.dll文件;libmysql.dll文件查找到后,将文件拷贝到相应驱动安装目录中的bin目录下即可;...
    99+
    2024-04-02
  • react 实现图片正在加载中 加载完成 加载失败三个阶段的原理解析
    最近博客写道项目列表中,发现这里比较多图片,一开加载会比较慢,然后就想要用一个loading的图片来占位。与此同时,如果图片加载失败那么显示错误的图片,不显示一个原有的错误,那样比较...
    99+
    2024-04-02
  • 小程序怎么实现上拉刷新下拉加载
    这篇文章主要介绍“小程序怎么实现上拉刷新下拉加载”,在日常操作中,相信很多人在小程序怎么实现上拉刷新下拉加载问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”小程序怎么实现上拉刷新下拉加载”的疑惑有所帮助!接下来...
    99+
    2023-06-26
  • Java IDE路径加载失败,是否需要重新安装?
    当你使用Java开发时,你可能会遇到“Java IDE路径加载失败”的错误提示。这个错误提示通常意味着你的IDE(集成开发环境)无法找到Java编译器或JRE(Java运行时环境)的路径。这种情况下,你可能会考虑重新安装Java IDE来...
    99+
    2023-07-23
    ide path load
  • 微信小程序运行环境加载失败怎么解决
    微信小程序运行环境加载失败可能是由于网络连接问题、服务器故障或者小程序代码问题引起的。要解决这个问题,可以尝试以下方法: 检查网...
    99+
    2024-03-15
    微信小程序
  • bootstrapTable怎么重新加载数据
    这篇文章将为大家详细讲解有关bootstrapTable怎么重新加载数据,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。项目中使用到了bootstrapTable , 根据条件查询数据,重新加载列表,有几种...
    99+
    2023-06-15
  • Linux怎么重新加载网卡
    在Linux中,重新加载网卡可以通过以下步骤来完成: 打开终端窗口。 使用ifconfig命令来查看当前的网卡配置,找到你想...
    99+
    2024-02-29
    Linux
  • windows中mfc110u.dll加载失败怎么解决
    本篇内容主要讲解“windows中mfc110u.dll加载失败怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“windows中mfc110u.dll加载失败怎么解决”吧!方法一1、下载最...
    99+
    2023-07-04
  • Webpack dev server热加载失败怎么办
    这篇文章主要介绍了Webpack dev server热加载失败怎么办,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。利用Webpack de...
    99+
    2024-04-02
  • 微信小程序如何重新加载页面
    微信小程序有提供一个下拉刷新的功能,操作步骤如下:打开小程序。点击右上角的“···”。会弹出一些功能信息,选择“刷新”即可。...
    99+
    2024-04-02
  • Java IDE:路径加载失败,该怎么办?
    Java 是一种流行的编程语言,拥有广泛的应用场景和强大的生态系统。Java IDE 是 Java 开发者必不可少的工具之一,它提供了方便的代码编辑、编译和调试功能。但是,在使用 Java IDE 时,经常会遇到路径加载失败的问题。本文将...
    99+
    2023-07-23
    ide path load
  • 微信小程序怎么实现触底加载
    这篇文章主要介绍“微信小程序怎么实现触底加载”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序怎么实现触底加载”文章能帮助大家解决问题。首先要从后端也就是服务器上获取分页的数据,如:每页多少条...
    99+
    2023-07-02
  • windows怎么重新加载环境变量
    要重新加载Windows环境变量,可以按照以下步骤进行:1. 打开“控制面板”:可以通过在Windows搜索栏中键入“控制面板”并选...
    99+
    2023-09-08
    windows
  • linux怎么重新加载环境变量
    在Linux中,可以使用以下命令重新加载环境变量:1. source命令:使用source命令可以重新加载当前用户的环境变量。在终端...
    99+
    2023-09-15
    linux
  • linux怎么重新加载配置文件
    在Linux系统中重新加载配置文件可以通过以下几种方式: 重新启动服务:有些服务在修改了配置文件后需要重新启动才能生效,可以使用以...
    99+
    2024-04-02
  • Django debug为True时,css加载失败怎么办
    这篇文章给大家分享的是有关Django debug为True时,css加载失败怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。django上线后,需要把setting.py文件的debug=True改为Fal...
    99+
    2023-06-14
  • 搭建git提示java加载失败怎么办
    随着软件开发的迅猛发展,Git作为一款分布式版本控制系统已经成为许多开发人员和团队不可或缺的工具。但是,在搭建Git时,有时会遇到一些问题,比如Java加载失败的错误提示。本文将介绍这个问题的原因和解决方法。一、问题描述在安装和配置Git时...
    99+
    2023-10-22
  • 为什么Python中的HTTP对象加载失败?
    Python是一种广泛使用的编程语言,它在Web开发中特别流行。然而,有时候,我们会遇到Python中HTTP对象加载失败的问题。这个问题可能会导致我们的应用程序不稳定,甚至完全无法使用。那么,为什么Python中的HTTP对象会加载失败呢...
    99+
    2023-09-28
    load http 对象
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作