'EntityFramework.Core, версия = 7.0.0.0, использует 'System.Linq.Expressions, версия = 4.0.11.0

У меня есть решение ASP.NET 5.0 с тремя проектами.

  1. MVC-проект
  2. Проект доступа к данным
  3. Определения сущностей

после попытки обновить проекты с бета-8 ASP.NET 5 и EF 7 до RC1-final я получаю следующую ошибку (которая ничего не дала ни при каком поиске, где бы я ни смотрел).

****Ошибка: Ошибка сборки CS1705 «EntityFramework.Core» с идентификатором «EntityFramework.Core, версия = 7.0.0.0, культура = нейтральная, PublicKeyToken = adb9793829ddae60» использует «System.Linq.Expressions, версия = 4.0.11.0, культура =neutral, PublicKeyToken=b03f5f7f11d50a3a', которая имеет более позднюю версию, чем ссылочная сборка System.Linq.Expressions с идентификатором System.Linq.Expressions, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ASS.DomainDataModel** **

Я попытался загрузить другую версию System.Linq через консоль диспетчера пакетов, ориентируясь на все три проекта, а также удалил System.Linq из файлов project.json всех проектов и добавил его обратно, попробовав там другую версию. Чем дольше я пытаюсь разобраться в этом, тем больше запутываюсь. Думаю, я упускаю что-то совершенно очевидное...

Как было предложено, вот содержимое трех файлов project.json

МВК проект:

{
  "webroot": "wwwroot",
  "version": "1.0.0-*",

  "dependencies": {
    "Microsoft.AspNet.Diagnostics": "1.0.0-rc1-final",
    "Microsoft.AspNet.IISPlatformHandler": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc": "6.0.0-rc1-final",
    "Microsoft.AspNet.Server.Kestrel": "1.0.0-rc1-final",
    "Microsoft.AspNet.StaticFiles": "1.0.0-rc1-final",
    "Microsoft.Extensions.Logging.Debug": "1.0.0-rc1-final",
    "Microsoft.AspNet.Mvc.TagHelpers": "6.0.0-rc1-final",
    "System.Linq.Parallel": "4.0.1-beta-23516", 
    "ASS.DomainClasses": "1.0.0-*",
    "ASS.DomainDataModel": "1.0.0-*"
  },

  "commands": {
    "web": "Microsoft.AspNet.Server.Kestrel",
    "ef": "EntityFramework.Commands"
  },

  "frameworks": {
    "dnx451": {
      "dependencies": {
        "System.Linq.Expressions": "4.0.11-beta-23516"
      }
    },
    "dnxcore50": {
      "dependencies": {
        "System.Linq.Expressions": "4.0.10"
      }
    }
  },

  "exclude": [
    "wwwroot",
    "node_modules",
    "bower_components"
  ],
  "publishExclude": [
    "node_modules",
    "bower_components",
    "**.xproj",
    "**.user",
    "**.vspscc"
  ]
}

Проект доступа к данным:

{
  "version": "1.0.0-*",
  "description": "ASS.DomainDataModel Class Library",
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "frameworks": {
    "dnx451": {
      "dependencies": {
        "System.Linq.Expressions": "4.0.11-beta-23516"
      }
    },
    "dnxcore50": {
      "dependencies": {
      }
    }
  },

  "dependencies": {
    "ASS.DomainClasses": "1.0.0-*",
    "Microsoft.Extensions.PlatformAbstractions": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0-rc1-final",
    "Microsoft.Extensions.Configuration.Json": "1.0.0-rc1-final",
    "EntityFramework.Core": "7.0.0-rc1-final",
    "EntityFramework.Commands": "7.0.0-rc1-final",
    "EntityFramework.MicrosoftSqlServer": "7.0.0-rc1-final",
    "EntityFramework.Relational": "7.0.0-rc1-final"
  },

    "commands": {
    "ef": "EntityFramework.Commands"
  }
}

Объекты по проекту:

{
  "version": "1.0.0-*",
  "description": "ASS.DomainClasses Class Library",
  "tags": [ "" ],
  "projectUrl": "",
  "licenseUrl": "",

  "frameworks": {
    "dnx451": {
      "dependencies": {
        "System.Linq.Expressions": "4.0.11-beta-23516"
      }
    },
    "dnxcore50": {
      "dependencies": {
        "Microsoft.CSharp": "4.0.1-beta-23516",
        "System.Collections": "4.0.11-beta-23516",
        "System.Linq.Expressions": "4.0.10",
        "System.Runtime": "4.0.21-beta-23516",
        "System.Threading": "4.0.11-beta-23516"
      }
    }
  }
}

person Olaf D.    schedule 20.11.2015    source источник
comment
Обычно с такими ошибками вам нужно зайти в файл web.config и изменить все места, где System.Linq.Expressions используется для ссылки на более новый номер версии.   -  person StriplingWarrior    schedule 20.11.2015
comment
Я думаю, вы должны добавить файлы project.json для всех 3 ваших проектов в свой вопрос, чтобы получить помощь с проблемой такого типа.   -  person Joe Audette    schedule 20.11.2015
comment
Спасибо ребята. Добавление файлов json даже помогло мне получить лучший обзор. @StriplingWarrior, ASP.NET 5 больше не использует web.config для этих целей. Вместо этого он использует файлы json для настройки приложения.   -  person Olaf D.    schedule 21.11.2015


Ответы (1)


Между "dependencies" и "frameworkAssemblies" в project.json есть небольшая разница. Ваша платформа "dnx451" использует упакованную версию System.Linq.Expressions. Скорее всего, вам нужно указать сборку фреймворка. (Предполагаю, что я не знаю точных требований вашего проекта.)

См. В чем разница между "зависимостями" и "frameworkAssemblies" ' в проекте.json?

Кроме того, это может быть связано с несовместимостью в ASS.DomainDataModel.

person natemcmaster    schedule 20.11.2015
comment
Спасибо! Это действительно прояснило ситуацию. Глядя на все три файла проекта здесь, было немного легче обнаружить структурную проблему. Итак, теперь я удалил отдельные записи из зависимостей фреймворков и создал одну запись в разделе зависимостей «корневого» уровня во всех трех файлах проекта, и теперь sln строится без проблем. - person Olaf D.; 21.11.2015