引用第三方dll文件,重新生成报错

警告 39 预定义类型“System.Runtime.CompilerServices.ExtensionAttribute”是在全局别名的多个程序集中定义的;将使用“c:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.5\mscorlib.dll”中的定义

解决方式是:“删除 Newtonsoft.Json.Net20.dll 后重新引用”
不知道是否是这个问题。

  • 没碰到过。
  • 按字面意思是说有两个程序集都给出了System.Runtime.CompilerServices.ExtensionAttribute,但是这是一个系统的dll,不会是自己写的。
  • 因此怀疑是否引用了不同的DOTNET framework版本
  • 因此是否有类似这样的情况:你的主程序是DOTNET Framework 4.5的,但是其中一个dll用的是DOTNET framework2.0的,而且主程序和dll都使用了System.Runtime.CompilerServices.ExtensionAttribute,因此导致了这个问题
  • 如果如上所描述的那样,需要找一个你的dll的DOTNET framework 4.5的版本。才能解决此问题;或者把你的所有程序都转为DOTNET framework 2.0

第三方dll是否跟你的c#程序兼容,是否可以调用