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

.net6.0引用的dll放置单独的文件夹

.net6.0 采用原有的设置方法不起作用

<?xml version="1.0" encoding="utf-8" ?>
<configuration><startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" /></startup><runtime><assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"><!--<publisherPolicy apply="yes" />这句不要也是可以的--><probing privatePath="dll;dll/2" /></assemblyBinding></runtime>
</configuration>

http://www.dedeyun.com/it/csharp/104076.html

需要在App.xaml.cs文件中加入以下代码
https://9to5answer.com/using-an-absolute-path-in-probing-privatepath

public App(){AssemblyResolver.Hook("DLL");}public static class AssemblyResolver
{internal static void Hook(params string[] folders){AppDomain.CurrentDomain.AssemblyResolve += (sender, args) =>{// Check if the requested assembly is part of the loaded assembliesvar loadedAssembly = AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(a => a.FullName == args.Name);if (loadedAssembly != null)return loadedAssembly;// This resolver is called when a loaded control tries to load a generated XmlSerializer - We need to discard it.// http://connect.microsoft.com/VisualStudio/feedback/details/88566/bindingfailure-an-assembly-failed-to-load-while-using-xmlserializationvar n = new AssemblyName(args.Name);if (n.Name.EndsWith(".xmlserializers", StringComparison.OrdinalIgnoreCase))return null;// http://stackoverflow.com/questions/4368201/appdomain-currentdomain-assemblyresolve-asking-for-a-appname-resources-assemblif (n.Name.EndsWith(".resources", StringComparison.OrdinalIgnoreCase))return null;string assy = null;// Get execution folder to use as base foldervar rootFolder = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)??"";// Find the corresponding assembly fileforeach (var dir in folders){assy = new[] { "*.dll", "*.exe" }.SelectMany(g => Directory.EnumerateFiles(Path.Combine(rootFolder,dir), g)).FirstOrDefault(f =>{try{return n.Name.Equals(AssemblyName.GetAssemblyName(f).Name,StringComparison.OrdinalIgnoreCase);}catch (BadImageFormatException){return false; /* Bypass assembly is not a .net exe */}catch (Exception ex){// Logging etc herethrow;}});if (assy != null)return Assembly.LoadFrom(assy);}// More logging for failure herereturn null;};}
}
http://www.lryc.cn/news/139113.html

相关文章:

  • CMake:检测外部库---自定义find模块
  • vue直接使用高德api
  • Setting
  • 时序预测 | Matlab实现SO-CNN-BiGRU蛇群算法优化卷积双向门控循环单元时间序列预测
  • 论文浅尝 | KRACL-利用图上下文和对比学习的稀疏KG补全
  • 【C++】右值引用,移动语义,完美转发
  • 【AI】即使AI 时代,程序员也无需焦虑
  • Django实现DRF数据API接口格式封装
  • [Go版]算法通关村第十三关白银——数字数学问题之数组实现加法、幂运算
  • 【 OpenGauss源码学习 —— 列存储(Insert)】
  • Android 13.0 framework中实现默认长按电源键弹出关机对话框功能
  • 微信小程序,封装身高体重选择器组件
  • 深度学习调参技巧
  • 图论基础和表示(Java 实例代码)
  • 各种数据库查询报错问题
  • 人效九宫格城市沙龙暨《人效九宫格白皮书》发布会 —上海站,圆满结束
  • 【C语言】文件操作 -- 详解
  • 飞天使-k8s基础组件分析-持久化存储
  • python连接PostgreSQL 数据库
  • 数字图像处理—— Lab、YCbCr、HSV、RGB之间互转
  • 自动驾驶SLAM技术第四章习题2
  • vue拖拽div盒子实现上下拖动互换
  • Visual Studio 2022 右键单击项目没有出现View | View Class Diagram(Visual Studio 无法使用类设计器)
  • EFCore常见用法
  • 概率论与数理统计:第六章:数理统计
  • 拥塞控制(TCP限制窗口大小的机制)
  • 校园供水系统智能管理
  • Flask-SocketIO和Flask-Login联合开发socketio权限系统
  • 航空电子设备中的TSN通讯架构—直升机
  • elment-ui中使用el-steps案例