C# 如何修复ASP.NET 5中的CS0433错误?
使其在任何位置引用类型C# 如何修复ASP.NET 5中的CS0433错误?,c#,visual-studio-2015,asp.net-core,C#,Visual Studio 2015,Asp.net Core,使其在任何位置引用类型System.Collections.Generic.Dictionary的代码行,无论是作为变量类型还是在Using声明中 这种使用声明的方式工作得很好,使我的类不像在我的类中的100个地方编写System.Collections.Generic.Dictionary那样令人讨厌。去掉Using声明并不能解决我的问题,它只是将它移动到方法参数中使用字典类型的地方 错误全文: CS0433 The type 'Dictionary<TKey, TValue>'
System.Collections.Generic.Dictionary
的代码行,无论是作为变量类型还是在Using声明中
这种使用声明的方式工作得很好,使我的类不像在我的类中的100个地方编写System.Collections.Generic.Dictionary
那样令人讨厌。去掉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
如果您只是让它说:
"frameworks": {
"dotnet": { }
}
- 导致它的代码行是一个Using声明,一个类型别名,在我尝试将beta6项目转换为beta7之前,它工作得很好
- 转换一直进行,直到我尝试使用JsonDictionary别名添加它们,然后编译中断
是什么导致了这个问题?既然我不能从项目中删除mscorlib,也不能删除System.Collections,那么我如何修复它呢?您需要将它指定为框架依赖项
"frameworks": {
"dnx451": {
"frameworkAssemblies": {
"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,它将解决问题。为什么您不能删除对
System.Collections.dll
的引用?我的主asp.net项目加上它所依赖的类库的配置不一致,必须修复它们的project.json。令人惊讶的是,从属子部件中的错误值破坏了主部件的编译。我原以为从属程序集中的坏值会破坏它的编译。但是没有。
"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"
}
}
}