如何修复ASP中的CS0433错误?净5

本文关键字:错误 CS0433 何修复 ASP 中的 | 更新日期: 2023-09-27 18:11:52

导致它引用类型System.Collections.Generic.Dictionary的代码行,无论是作为变量类型,还是在Using声明中。

这个Using声明工作得很好,使我的类不那么恶心,而不是在我的类的100个地方写System.Collections.Generic.Dictionary<string, object>。把Using声明拿出来并不能解决我的问题,它只是把它移到了方法参数中使用字典类型的地方。

错误全文:

CS0433  The type 'Dictionary<TKey, TValue>' exists in both
'System.Collections, Version=4.0.10.0, Culture=neutral,
  PublicKeyToken=b03f5f7f11d50a3a' 
 and 
'mscorlib, Version=4.0.0.0, Culture=neutral, 
 PublicKeyToken=b77a5c561934e089'   ProjectName.DNX 

这个错误发生在ASP中。. NET 5 MVC 6基于模板的项目,使用DNX 1.0.0-beta7,有一些模型和控制器类引用泛型集合类型。该项目。Json是这样设置的:

  "frameworks": {
    "dnx451": { }
  }

如果你只写

,就会出现示例问题
  "frameworks": {
    "dotnet": { }
  }
  • 导致它的代码行是Using声明,一种类型别名,在我尝试将beta6项目转换为beta7之前工作良好。

  • 转换继续,直到我尝试使用JsonDictionary别名添加这些,然后编译中断。

我已经搜索了这个错误代码,它在ASP.NET中有很长的不光彩的历史。

是什么导致了这个问题?我怎么能修复它,因为我不能从我的项目中删除mscorlib,也不能删除System.Collections?

如何修复ASP中的CS0433错误?净5

在beta6中,当你创建一个类库项目时,它会设置框架部分,你发布的方式是"dotnet"但是如果你在beta7中创建一个新的类库项目,它会这样设置:

"frameworks": {
    "dnx451": { },
    "dnxcore50": {
      "dependencies": {
        "Microsoft.CSharp": "4.0.1-beta-23225",
        "System.Collections": "4.0.11-beta-23225",
        "System.Linq": "4.0.1-beta-23225",
        "System.Runtime": "4.0.21-beta-23225",
        "System.Threading": "4.0.11-beta-23225"
      }
    }
  }

我相信,如果你更新你的项目json相应,它将解决问题。

您需要将其指定为框架依赖项。

"frameworks": {
     "dnx451": {
      "frameworkAssemblies": {
         "System.Collections":  ""
       }
     }
}