it-swarm.com.ru

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

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

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

ErrorList

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

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

UPDATE: -Мой файл 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"
}
31
KidCode

Я предполагаю, что здесь немного, но выглядит подозрительно, что вы используете обычные 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
Karl-Johan Sjögren

Удалите bin и obj и пересоберите.

15
gneric

Я запускаю команду dotnet restore на консоли диспетчера пакетов, и проблема решена.

4
Navid_pdp11

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

3
Peter

Для меня проблема возникла, когда я добавил новый проект в свое решение. Я пересобрал решение, и ошибки исчезли. 

0
Sarah Wessel