Подтвердить что ты не робот

Предопределенный тип "System.Object" не определен или не импортирован .net 4.6

Я использую MVC 5 и .net 4.6 для создания веб-API, к которому также может подключаться мобильное приложение.

Всякий раз, когда я создаю проект, я получаю сотни ошибок, говорящих мне, что мне нужно добавить ссылки, которые уже есть, и что буквально каждый тип моего проекта "не существует". Некоторые примеры этих ошибок: (не включая название в заголовке)

ErrorList

Что я пробовал:

  • Добавлена ​​ссылка на System.Runtime через nuGet. (Рекомендация этого вопроса.)
  • Удалено aspnetcore50 из фреймворков в файле project.json. (Еще одна рекомендация, этот вопрос.)
  • Перезапуск VS2015, моя машина.
  • Переход через менеджер пакетов nuGet и обновление каждого пакета в моем проекте до последней версии.
  • Собственно, убедившись, что я вижу ссылки в ссылках node в проводнике решений.

UPDATE: -My project.json файл выглядит следующим образом. (После изменения, основанного на ответе Карлса. В списке ошибок теперь осталось до десяти, однако они все еще те же ошибки, что и раньше.)

{
  "commands": {
    "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000"
  },
  "dependencies": {
    "Microsoft.AspNet.Server.IIS": "1.0.0-beta5",
    "Microsoft.AspNet.Server.WebListener": "1.0.0-beta5",
    "Microsoft.AspNet.Diagnostics": "1.0.0-beta5",
    "Microsoft.AspNet.Mvc": "6.0.0-beta5",
    "System.Runtime": "4.0.20-beta-23019"
  },
  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ],
  "frameworks": {
    "dnx451": {
      "frameworkAssemblies": {
        "System.Data": "4.0.0.0",
        "System.Data.DataSetExtensions": "4.0.0.0",
        "System.Data.Linq": "4.0.0.0"
      }
    }
  },
  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ],
  "version": "1.0.0-*",
  "webroot": "wwwroot"
}
4b9b3361

Ответ 1

Я немного догадываюсь, но выглядит подозрительно, что вы используете обычный System.Data.* материал для dnx451, но не можете его компенсировать за dnxcore50. Вы ориентируетесь на основную версию, или это просто остатки от создания проекта? Если вы хотите настроить таргетинг на основную версию и использовать старый материал System.Data.*, вам нужно будет обернуть что-нибудь из этих сборок, как это.

#if DNX451
// Do some DNX451 specific stuff here
#endif

И наоборот.

#if DNXCORE50
// Do some DNXCORE50 specific stuff here
#endif

Но если вы не думаете об этом, я просто удалю dnxcore50 из списка фреймов, и ваши ошибки, вероятно, исчезнут.

Ответ 2

В моем случае у меня был проект, который все еще настроен для создания против бета-версии dnx. Изменение его для создания против версии, которую я использовал в других проектах, исправил ее.