解决vs“错误CS0006:未能找到元数据文件”,终极解决方法
问题引起起因:将A类库里的某些对象class 迁移到 新创建的B类库(JF.Domain.csproj),通过这样的一顿骚操作后,编译的时候,错误就发生了。
1、将对象迁移到新建的B类库,原有的对象引用要重新using引用,如果有10个对象要重新引用,但你只重新引用了7个,还有3个没有引用,也会导致这样的报错。
但是vs没有那么智能,有时候并不会报出来,只会报一个“未能找到元数据文件”。
这时候应该怎么办呢?这时候看第2点。
2、移除 B类库(JF.Domain.csproj),编译,看错误,这时候可能看到不一样的错误出来,记住它,然后重新引用 B类库(JF.Domain.csproj),再重新编译,可能就能看到之前没有爆发出来的错误。
这样反复操作,可以解决一部分问题。如果到这步解决了就好,如果还没解决,进入第3点。
3、猜测,A类库(.net framework 4.8) 引用 sqlsugar.dll 版本是 5.0.8.9, B类库(JF.Domain.csproj)(.net framework 4.5.2)引用 sqlsugar.dll 版本也是 5.0.8.9,
要升级 B类库(JF.Domain.csproj)(.net framework 4.5.2)到 4.8,才能使用高版本的 sqlsugar.dll 5.0.8.9,这个也是隐藏的错误,vs没那么智能,反复编译操作才能偶然性爆出这个错误。
如果 A类库和B类库引用的 sqlsugar.dll 版本不一样,也可能会报这个错误,不一定。其它共同引用的dll也是一样。
4、如果 .net framework 框架 4.5.2 和 sqlsugar.dll 版本不兼容,vs可能不会爆出来,但有一个比较特殊的现象可以猜想出是版本不兼容问题,
整个项目编译的时候,每次都报这个类文件某行代码没有添加using引用,但你一点击vs错误打印的信息后,这个引用的报错也跟着消失了,这个很可能是版本不兼容问题。
这时就要升级一下.net framework框架或者dll版本,让两者兼容,或者百度一下他们的兼容版本是哪个对哪个。
5、关闭vs,重新打开vs项目,也能发现一些没有爆出来的错误。
6、设置vs,默认可能是打印简单的错误,可以设置成打印详细的错误到vs控制台,或许可以看到更详细的错误信息,这个自行百度。
总结,来来去去就是那几个主要原因:版本不兼容,框架版本太高或太低,dll版本太高或太低,using引用没有正确添加,有漏掉的。
导致引用类库没能正常生成dll或者没有依赖上主项目,就会报“未能找到元数据文件”。
搜索
复制
标签:类库,数据文件,错误,dll,vs,引用,版本,CS0006 From: https://www.cnblogs.com/jankie1122/p/16621249.html