因为接口形式的兼容性,这种错误更多的是运行时错误。

在VS IDE 下使用c# 时,创建新类型对象,对没有引用到的程序集,那么一般可以通过“Show potential fixes”来解决

但是有时候,我们会查找一下该对象所在的程序集,然后直接在nuget下载,但是下载哪个版本呢,一般最新的会向下兼容,所以一般我们会选择最新的。但是这个最新的版本可能在运行时,程序才能发现这个版本不是自己需要的。甚至我们尝试了Nuget 提供的所有版本后,发现每一个版本都不是程序所需要的。NETStandard.Library 2.03的版本中Net'Newtonsoft.Json 就是这样一个例子。

创建了一个基于 NETStandard.Library 2.03的Libarary, 使用了JsonConvert 对象,该对象需要的程序集是Net'Newtonsoft.Json,最开始使用Nuget restore 功能直接加载了 Net'Newtonsoft.Json 12.03版本,编译是没有问题,调试时一直有这样的错误:

$exception        {"Could not load file or assembly 'Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified.":"Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed"}        System.IO.FileNotFoundException

我看了.csproj的reference 以及

 输出 目录下的 xx.deps.json,其实写的都是12.03,并且在nuget package managment 列表窗口根本就找不到12.03.

使用nuget 上提供的其它版本,依然报类似的错误。最后只能删除,还好JsonConvert对象是VS 能够provide potential fixes,通过这一功能加载了以下版本,并且发现该版本还不在nuget list 里面。

虽然问题解决了,这并不是一个好的方法,不能保证其它开发者也会有这个路径。并且后续net standard 升级变化时,这个引用的维护也相当麻烦。

而且有时候,没有把依赖的程序集加载到工程里时,那么vs IDE一般也无法 provide potential fixes.

DotNet 程序集加载了不匹配版本的依赖程序相关推荐

  1. 重温CLR(十七)程序集加载和反射

    本章主要讨论在编译时对一个类型一无所知的情况下,如何在运行时发现类型的信息.创建类型的实例以及访问类型的成员.可利用本章讲述的内容创建动态可扩展应用程序. 反射使用的典型场景一般是由一家公司创建宿主应 ...

  2. max2104打开时提醒注册插件出错_启动3dmax时出现插件程序集加载错误怎么办?

    原因: 3ds Max 安装已损坏或者与安装的 .NET Framework 或 Windows 程序防火墙和权限冲突. 解决方案: 发生此一般性错误的原因可能有多种:Windows 更新或升级,甚至 ...

  3. 无法启动ASP.NET状态服务 错误0x8007277a;无法加载或初始化请求的服务提供程序

    问题:无法启动ASP.NET状态服务 错误0x8007277a;无法加载或初始化请求的服务提供程序 解决:如果在启动ASP.NET State Service服务时遇到问题0x8007277a 即无法 ...

  4. 十年一遇的奇葩故障--Windows网络编程接口故障:telnet显示无法加载或初始化请求的服务提供程序...

    现象:某同事的笔记本win7x64系统,当初故障是无法使用小乌龟连接到svn服务器,但又可以正常上网,并且svn服务器端是正常的. 后来我进一步测试,发觉该电脑也不能连接到远程windows. net ...

  5. .NET Core 3.0 可回收程序集加载上下文

    .NET诞生以来,程序集的动态加载和卸载都是一个Hack的技术,之前的NetFx都是使用AppDomain的方式去加载程序集,然而AppDomain并没有提供直接卸载一个程序集的API,而是要卸载整个 ...

  6. linux设备驱动——bus、device、driver加载顺序与匹配流程

    文章目录 1. 前言 2. 概念 2.1. 数据结构 2.2. probe函数 3. bus.device.driver加载顺序 3.1. 加载方式 3.2. 加载顺序 4. device.drive ...

  7. 【Android 安全】DEX 加密 ( 不同 Android 版本的 DEX 加载 | Android 8.0 版本 DEX 加载分析 | Android 5.0 版本 DEX 加载分析 )

    文章目录 一.不同版本的 DEX 加载 1.Android 8.0 版本 DEX 加载分析 2.Android 6.0 版本 DEX 加载分析 3.Android 5.0 版本 DEX 加载分析 一. ...

  8. caffe :error MSB4062: 未能从程序集** 加载任务“NuGetPackageOverlay”

    四个工作日 吐血安装 caffe-master(哭),记录一个关于: 错误 1 error MSB4062: 未能从程序集 E:\NugetPackages\OpenCV.2.4.10\build\n ...

  9. android dex加载过程,8.1版本dex加载流程笔记--第二篇:DexFile::Open流程与简单脱壳原理...

    在看雪发了,52再发一下,共同学习 菜鸟刚刚学完了dex_file.cc这个源码,大致搞明白了大佬们hook脱整体加固的原理了,原理在帖子最后 学习了大佬angelToms的帖子https://bbs ...

  10. ie iframe加载 只有head_mmdetection中加载模型不匹配问题

    最近在学习mmdetection框架,在加载预训练模型时偶尔会遇到如下问题: The model and loaded state dict do not match exactly 正常情况下只是把 ...

最新文章

  1. SecureCRT中sqlplus,使用Backspace删除时 ^H^H
  2. ClickHouse 学习
  3. 我的实用设计模式 - Simple Factory和Reflection
  4. 判断数字是否在区间 python实现
  5. Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名、合并两个不同路径下图片文件名等目录/路径案例、正确加载图片路径)之详细攻略
  6. java 可重入读写锁 ReentrantReadWriteLock 详解
  7. java unsafe park_Java魔法类——Unsafe应用解析
  8. mysql 优化 修复原理_mysql下表的修复与优化
  9. juniper srx 1500 HA及双线路自动切换配置
  10. Python里面search()和match()的区别?
  11. 激光雷达厂商速腾聚创获3亿元融资,阿里菜鸟、上汽,北汽入股
  12. 1001. 害死人不偿命的(3n+1)猜想 (15)-PAT乙级真题
  13. jQuery使table表格隔行显示不同颜色
  14. sdk 今日头条_Unity接入今日头条广告(激励广告)
  15. ccd视觉定位教程_CCD视觉定位激光打标机的工作原理
  16. 行政事业单位固定资产管理系统,资产管理系统操作手册
  17. 学生卡变成普通卡_15日前不审验 学生卡变成普通卡
  18. 顶级域名.tk申请与DNSPOD解析
  19. 京苍穹土地利用规划建库工具软件_北京苍穹土地利用规划建库工具软件V10使用手册.doc...
  20. 网络安全——无线局域网安全技术——802.11i

热门文章

  1. T32:第一次出现的字符
  2. linux pam认证 用户名,Linux-PAM 认证 模块
  3. 一步一步实现STM32-FOTA系列教程之STM32-FLASH分区说明
  4. api.php(260x260),Restful Api文档 -V3-教程
  5. 新浪财经独家对话达利欧:桥水员工离职率曾高达30%
  6. ⑪(面试篇 3/3)、《史上最全iOS八股文面试题》2022年,金三银四我为你准备了,iOS《1000条》笔试题以及面试题(包含答案)。带面试你过关斩将,(赶紧过来背iOS八股文)
  7. Magento(CE1.X)自带模块解析五
  8. 深入理解示波器探头各种作用及工作原理
  9. android edittext 字母数字键盘,android EditText默认数字键盘,能输入字母,数字和中文...
  10. 用python来做一个APP | python GUI 基础(实战)