2015-03-17 8 views
8

Возможно ли запустить EF6 под предварительным выпуском ASP.net vNext? EF7 не имеет некоторых функций, которые мне нужны, но я хотел бы прототипировать мое приложение в .NET Core.ASP.net vNext и Entity Framework 6

Я получаю следующее сообщение об ошибке:

FileLoadException: A strongly-named assembly is required. 
(Exception from HRESULT: 0x80131044) Unknown location 

FileLoadException: Could not load file or assembly 
'EntityFramework.SqlServer, Version=6.0.0.0, Culture=neutral, 
PublicKeyToken=b77a5c561934e089' or one of its dependencies. 
A strongly-named assembly is required. (Exception from HRESULT: 0x80131044) 

Я знаю, что .NET ядро ​​не поддерживает строго именованные сборки, но, насколько я знаю, я бегу сервер в рамках aspnet50 а не aspnetcore50.

Мой project.json выглядит следующим образом:

{ 
    "webroot": "wwwroot", 
    "version": "1.0.0-*", 
    "dependencies": { 
     "EntityFramework": "6.1.1", 
     "Microsoft.AspNet.Mvc": "6.0.0-beta3", 
     /* "Microsoft.AspNet.Mvc.WebApiCompatShim": "6.0.0-beta3", */ 
     "Microsoft.AspNet.Diagnostics": "1.0.0-beta3", 
     "Microsoft.AspNet.Diagnostics.Entity": "7.0.0-beta3", 
     "Microsoft.AspNet.Identity.EntityFramework": "3.0.0-beta3", 
     "Microsoft.AspNet.Security.Cookies": "1.0.0-beta3", 
     "Microsoft.AspNet.Server.IIS": "1.0.0-beta3", 
     "Microsoft.AspNet.Server.WebListener": "1.0.0-beta3", 
     "Microsoft.AspNet.StaticFiles": "1.0.0-beta3", 
     "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-beta3", 
     "Microsoft.Framework.CodeGenerators.Mvc": "1.0.0-beta3", 
     "Microsoft.Framework.Logging": "1.0.0-beta3", 
     "Microsoft.Framework.Logging.Console": "1.0.0-beta3", 
     "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-beta3", 
     "Tricycle.SqlPlatform.EntityFramework": "1.0.0-*" 
    }, 
    "commands": { 
     /* Change the port number when you are self hosting this application */ 
     "web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000", 
     "gen": "Microsoft.Framework.CodeGeneration", 
    }, 
    "frameworks": { 
     "aspnet50": { 
      "dependencies": { 
       "Tricycle.Studio.ContentManager.Client": "1.0.0-*" 
      } 
     }, 
     //"aspnetcore50": { } 
    }, 
    "exclude": [ 
     "wwwroot", 
     "node_modules", 
     "bower_components" 
    ], 
    "bundleExclude": [ 
     "node_modules", 
     "bower_components", 
     "**.kproj", 
     "**.user", 
     "**.vspscc" 
    ], 
    "scripts": { 
     "postrestore": [ "npm install" ], 
     "prepare": [ "grunt bower:install" ] 
    } 
} 

ЭФ классы определены в отдельном проекте (Tricycle.Studio.ContentManager.Client) со следующим project.json:

{ 
    "version": "1.0.0-*", 
    "dependencies": { 
     "EntityFramework": "6.1.1", 
    }, 

    "frameworks": { 
     "aspnet50": { 
      "dependencies": { 
       "System.Data.Common": "1.0.0-beta2", 
       "System.Data.SqlClient": "1.0.0-beta2" 
      } 
     }, 
     //"aspnetcore50" : { 
     // "dependencies": { 
     //  "System.Runtime": "4.0.20-beta-22523" 
     // } 
     //} 
    } 
} 

ответ

9

Вы не можете использовать Microsoft.AspNet.Identity.EntityFramework с EF6, потому что это зависит от EF7.

На основании вашего файла project.json время выполнения загрузит как EF6, так и EF7 (из-за Identity). Поведение непредсказуемо.

Также не следует смешивать beta2 и beta3. Это гарантированная проблема.

+0

Спасибо! Удаление Microsoft.AspNet.Identity.EntityFramework, похоже, исправило это. Что касается бета2/3 - эти пакеты, по-видимому, доступны в бета2. – Grokys

+0

Ах, приятно найти, @Victor. Все новые игрушки в стартапе заставили меня упустить это. +1 –