c# - tag - the type exists in both
¿Cómo arreglo los errores CS0433 en ASP.NET 5? (2)
Debe especificarlo como una dependencia de marco.
"frameworks": {
"dnx451": {
"frameworkAssemblies": {
"System.Collections": ""
}
}
}
La línea de código que lo causa en cualquier lugar hace referencia al tipo System.Collections.Generic.Dictionary
ya sea como un tipo de variable o en una Declaración de uso.
Esta declaración de uso funcionó bien e hizo que mis clases fueran menos desagradables que tener que escribir System.Collections.Generic.Dictionary<string, object>
en 100 lugares en mi clase. Sacar las declaraciones de uso no resuelve mi problema, simplemente lo mueve a los lugares donde se usa el tipo de diccionario en los parámetros de mi método.
Texto de error completo:
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
Este error ocurre en proyectos basados en plantillas de ASP.NET 5 MVC 6 usando DNX 1.0.0-beta7, que tienen algunas clases de Modelo y Controlador que hacen referencia a tipos de colecciones genéricas. El proyecto.json se establece así:
"frameworks": {
"dnx451": { }
}
El problema de muestra ocurre si solo lo tienes:
"frameworks": {
"dotnet": { }
}
La línea de código que lo provoca es una declaración de uso, un tipo de alias tipo, que funcionó bien hasta que intento convertir un proyecto beta6 a beta7.
La conversión continúa hasta que intento agregar estos usando alias de JsonDictionary, luego se rompe la compilación.
He buscado este código de error y tiene una larga e ignominiosa historia en ASP.NET.
¿Qué causa este problema? ¿Y cómo puedo solucionarlo, ya que no puedo eliminar mscorlib de mi proyecto, ni puedo eliminar System.Collections?
En beta6 cuando creó un proyecto de biblioteca de clase, configuraría la sección de frameworks de la manera en que lo publicó con "dotnet", pero si crea un nuevo proyecto de biblioteca de clase en beta7, lo configurará así:
"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"
}
}
}
Creo que si actualiza su proyecto json en consecuencia, se resolverá el problema.