C#未能从程序集“mscorlib, Version=4.0.0.0, Culture=neutral, ……”中加载类型“……”。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#未能从程序集“mscorlib, Version=4.0.0.0, Culture=neutral, ……”中加载类型“……”。相关的知识,希望对你有一定的参考价值。
未能从程序集“mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”中加载类型“System.Collections.Generic.IReadOnlyDictionary`2”。
注:之前没这问题,自从安装过4.5的框架卸载后,重新修改vs2010就这样了。
属于4.5的程序集,那么你现在只有4.0的程序集,你就要换一种实现方式了。
1234System.Web.Extensionsusing System.Web.Script.Serialization;javascriptSerializer js = new JavaScriptSerializer();js.xxx
一. 基本概念
C#是微软公司发布的一种面向对象的、运行于.NET Framework之上的高级程序设计语言。并定于在微软职业开发者论坛(PDC)上登台亮相。C#是微软公司研究员Anders Hejlsberg的最新成果。C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。
C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。它在继承C和C++强大功能的同时去掉了一些它们的复杂特性(例如没有宏以及不允许多重继承)。C#综合了VB简单的可视化操作和C++的高运行效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
二. 设计目标
C#旨在设计成为一种"简单、现代、通用",以及面向对象的程序设计语言,此种语言的实现,应提供对于以下软件工程要素的支持:强类型检查、数组维度检查、未初始化的变量引用检测、自动垃圾收集(Garbage Collection,指一种自动内存释放技术)。软件必须做到强大、持久,并具有较强的编程生产力。此种语言为在分布式环境中的开发提供适用的组件开发应用。
为使程序员容易迁移到这种语言,源代码的可移植性十分重要,尤其是对于那些已熟悉C和C++的程序员而言。对国际化的支持非常重要。C#适合为独立和嵌入式的系统编写程序,从使用复杂操作系统的大型系统到特定应用的小型系统均适用。
参考技术A 你用的是 Newtonsoft.Json ?看看你是不是用了.net 4.5版的 Newtonsoft.Json 了追问
这个就是4.0的,不是4.5,之前都是使用4.0.因为有dll是4.5的,所以安装的4.5框架,现在没用到了,卸载时,还把VS2010的安装的4.0框架都卸载了,现在使用修复跟安装都不行
追答为什么要卸载 .Net4.5 ? 重新装回去吧。
追问现在4.5安装回去,一调试或者直接使用就报错了。已经恢复之前的系统,看了下是框架4.5问题,类库4.5的,vs2010只支持选择到4.0.
参考技术B 你的JsonConvert这个变量的定义是什么?自己写的帮助类?追问不是,这是一个json生成跟解析的dll类库,之前一直没问题。这个工程放到别人电脑也没问题-------------json生成类库名字刚好图片值那里有。
追答刚才根据楼下的回答,去查了一下MSDN,居然没查到Newtonsoft的技术文档,只查到一些别人问的问题。所以我也不知道当前这个类,属于哪个版本的程序集。
如果楼下说的是对的,属于4.5的程序集,那么你现在只有4.0的程序集,你就要换一种实现方式了。
System.Web.Extensionsusing System.Web.Script.Serialization;
JavaScriptSerializer js = new JavaScriptSerializer();
js.xxx本回答被提问者采纳
C#提示未能找到类型或命名空间名称”Renderer“(是不是缺少 using 指令或程序集引用)怎么解决?
参考技术A 可以根据提示自动添加相应的命名空间的。追问可是怎么添加?它属于哪个命名空间,我在VS2010的所有属性中搜索到的是ToolStrip的一属性,可用的是一类。
追答我用图给你说明吧。看下图,同样的错误提示:
你把鼠标悬停到这个名称上就会出现下图红框中的一个小标志:
你将鼠标放到这个标志上,就会编程下图的样子:
是不是旁边多了一个向下的小箭头,你单击一下这个箭头就会弹出一个下拉列表,如下图:
下拉列表中就会提供出可能的命名空间列表,一般就是选第一个。你单击一下列表中正确的那个命名空间的名称,就表示using该命名空间。然后回到程序的using列表中,会看到下图红框中的using命名空间:
OK !问题解决,错误消失。
下拉列表中命名空间列表空空如也。这是不是要下载这样的一个类集,然后添加到引用中?
这个是你自定义的一个类吗?还是你引用其他自定义的Dll动态链接库里的类或方法?
如果是引用其他自定义的Dll动态链接库里的类或方法,你检查看看你有没有将这个脚本导入到你的工程中并用using引用它。
以上是关于C#未能从程序集“mscorlib, Version=4.0.0.0, Culture=neutral, ……”中加载类型“……”。的主要内容,如果未能解决你的问题,请参考以下文章
C# 未能加载文件或程序集或它的某一个依赖项。需要强名称程序集
C# 引入Sqlite 未能加载文件或程序集“System.Data.SQLite
C# 未能找到类型或命名空间名称“Form1”(是不是缺少 using 指令或程序集引用?)
ArcGIS engine C#开发出现未能加载程序集ESRI.ArcGIS.AxControls