如何修复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别名添加这些,然后编译中断。
是什么导致了这个问题?我怎么能修复它,因为我不能从我的项目中删除mscorlib,也不能删除System.Collections?
在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": ""
}
}
}