c#引用其它程序的程序集时报错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c#引用其它程序的程序集时报错相关的知识,希望对你有一定的参考价值。

错误 2 未能找到类型或命名空间名称“Aisino”(是否缺少 using 指令或程序集引用?)
警告 1 未能解析主引用“Aisino.Fwkp.BusinessObject”,因为它对 .NET Framework 程序集“mscorlib, Culture=neutral, PublicKeyToken=b77a5c561934e089”具有间接依赖关系,而该程序集的版本为“65535.65535.65535.65535”,高于当前目标框架中的版本“4.0.0.0”。
这个程序集是被混淆了,但是我如果直接引用的话是可以引用到并且能定义里面的类型,但是我用de4dot反混淆后,即使能够引用在编译的时候也会报错误 , 未能找到类型或命名空间名称“Aisino”(是否缺少 using 指令或程序集引用?)

参考技术A 你的工程使用的.Net版本太低了,应该高于6.5535。追问

好像还没有你说的这个版本,并且这个程序集是在4.0下生成的

追答

错误提示里写着 Aisino.Fwkp.BusinessObject是.Net版本为"65535.65535.65535.65535"。要不你再重新把Aisino库加入工程。
反编译+再编译,结果无法预知。

追问

这个程序集共用到了4:0:0:0和65535:65535:65535:65535两个版本的mscorlib,但是这个65535是怎么出来的就不知道了

追答

不是有代码嘛,在工程中搜索65535.65535.65535.65535,然后改掉。

参考技术B 范混淆了还能用?你这个很NB啊!! 参考技术C 是不是不同版本的dll直接的引用出问题了,,,现在。net有4.5了

C# 杂项

1,函数访问等级必须高于参数等级,如函数等级是PUBLIC,则参数必须高于等于PUBLIC,若为INTERNAL 则不行。
INTERNAL 低于PUBLIC, 用于同一个程序集内引用,PUBLIC则可以被别一个程序集引用
程序集:一个DLL或EXE就是一个程序集,一个EXE可以引用其它的DLL
这就好比大门是对外开放的,说了任何人都可以进,但进门时却说某些人达不到条件

2,CLASS, STRUCT, DELEGATE及INTERFACE的默认都是INTERNAL, NAMESAPCE默认是PUBLIC且不可以使用任何MODIFER去修饰。ENUM默认也是PUBLIC的,可以修饰。
非嵌套的类或结构,只能是PUBLIC或INTERNAL, 嵌套的可以是其它修饰。
类成员和结构成员默认都是私有的
结构成员不有是PROTECTED, 因为结构不能被继承
抽象类的成员函数不能是私有的,必须是public或protected,因为它需要被子类实现
接口的内部成员只能是公有的
Any types declared within a namespace or at the top level of a compilation unit (for example, not within a namespace, class, or struct) are internal by default, but can be made public

来自 <http://meinvchengxuyuan.iteye.com/blog/1612038>
名字空间内的任何类型,以及编译单元的最高一层(如没有名字空间,类,或结构时),默认都是INTERNAL的,但可以修饰为PUBLIC。
这句对应了上面的:类,结构,委托,接口默认都是INTERNAL

3,命名空间中不可以直接有变量或函数

4,继承
    abstract class IBASE
    {

    }
    abstract class IDBASE
    {
       protected abstract  void abfunc();
    }

    sealed class ENTITY :  public IDBASE //错误!IDBASE前不能像C++那样使用PUBLIC等修饰
    {
        protected override void abfunc() { }
    }
5,C#中不可能定义全局函数,因为它是全面向对象的,要求所有函数必须在类内部。

 

以上是关于c#引用其它程序的程序集时报错的主要内容,如果未能解决你的问题,请参考以下文章

c# .netframwork 4.0 调用 2.0时报错 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。

C# winform 退出时报错.(未将对象引用到实例)

vs中程序集的引用

C#中的命名空间和程序集

其它语言如何调用c# DLL

C#控制其它程序