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别名添加它们,然后编译中断

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


是什么导致了这个问题?既然我不能从项目中删除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"
      }
    }
  }