2015-11-20 2 views
1

У меня есть решение ASP.NET 5.0 с тремя проектами'EntityFramework.Core, Version = 7.0.0.0, использует' System.Linq.Expressions, Version = 4.0.11.0

проекта
  1. MVC
  2. данных проект доступа
  3. Сущность defnitions

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

**** Ошибка: Error CS1705 сборку 'EntityFramework.Core' с единицей 'EntityFramework.Core, Version = 7.0.0.0, культура = нейтральной, PublicKeyToken = adb9793829ddae60' System.Linq.Expressions использует», Version = 4.0.11.0, Culture = 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 файлов

MVC проекта:

проект
{ 
    "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" 
    } 
} 

Entities DEF проекта:

{ 
    "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" 
     } 
    } 
    } 
} 
+0

Обычно с такими ошибками вы должны зайти в свой файл web.config и изменить все места, где 'System.Linq.Expressions' используется для обозначения номера новой версии. – StriplingWarrior

+0

Я думаю, вы должны добавить файлы project.json для всех трех ваших проектов на свой вопрос, чтобы получить помощь в этом виде проблем. –

+2

спасибо, ребята. Добавление json-файлов даже помогло мне получить лучший обзор. @StriplingWarrior, ASP.NET 5 больше не использует web.config для этих вещей. Вместо этого он использует json-файлы для настройки приложения. –

ответ

1

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

См What is the difference between 'dependencies' and 'frameworkAssemblies' in project.json?

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

+0

Спасибо! Это действительно прояснилось. Глядя на все три файла проекта, здесь было немного легче определить структурную проблему. Поэтому теперь я удалил отдельные записи из зависимостей фреймворков и создал одну запись в разделе зависимостей уровня «root» во всех трех файлах проекта, и теперь sln строит без проблем. –