2015-09-09 4 views
4

Строка кода, которая вызывает в ней любое место, ссылающееся на тип System.Collections.Generic.Dictionary, как в виде переменной, так и в Использовании декларации.Как исправить ошибки CS0433 в ASP.NET 5?

Это использование объявления работало нормально и делало мои классы менее отвратительными, чем писать System.Collections.Generic.Dictionary<string, object> в 100 местах моего класса. Взятие деклараций использования не решает мою проблему, оно просто перемещает его в те места, где тип словаря используется в моих параметрах метода.

Полный текст ошибки:

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 MVC-6 шаблонов проектов на основе с использованием DNX 1.0.0-beta7, имеющей некоторые модели и классы контроллеров, которые ссылаются на общие типы коллекций. Project.json устанавливается таким образом:

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

Проблема образца происходит, если вы просто это сказать:

"frameworks": { 
    "dotnet": { } 
    } 
  • строки кода, который вызывает это с помощью декларации, тип псевдоним сортировки, который работал нормально, пока я не попытаюсь преобразовать проект бета6 в бета7.

  • Конверсия продолжается до тех пор, пока я не попытаюсь добавить их с использованием псевдонимов JsonDictionary, а затем разрывы компиляции.

Я искал этот код ошибки и имеет длинную и бесславную историю в ASP.NET.

В чем причина этой проблемы? И как я могу это исправить, так как я не могу удалить mscorlib из моего проекта и не могу удалить System.Collections?

+0

Почему вы не можете удалить ссылку на 'System.Collections.dll'? – Dai

ответ

2

В 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, это решит проблему.

+0

Мой основной проект asp.net плюс библиотека классов, от которой он зависел, были настроены непоследовательно, и необходимо было установить оба их проекта. Jsons. Что было неожиданностью, так это то, что неправильные значения в зависимой подсекции нарушили компиляцию основной сборки. Я бы ожидал, что плохие значения в сборнике Dependent нарушат компиляцию ITS. Но нет. –

1

Необходимо указать его как зависимость от структуры.

"frameworks": { 
    "dnx451": { 
     "frameworkAssemblies": { 
     "System.Collections": "" 
     } 
    } 
} 
Смежные вопросы