#entity-framework-core
#entity-framework-core
Вопрос:
У меня есть entity framework core
библиотека классов
В project.json
ранее добавленном мной
"buildOptions": {
"emitEntryPoint": true,
"copyToOutput": {
"include": [ "appsettings.json" ]
}
},
поскольку мне нужно запускать миграции в библиотеке классов, мне пришлось приспособиться project.json
к этому, чтобы это работало ( 1.0.0
), поскольку ef core не поддерживает выполнение миграций в библиотеке классов. Ссылка
Все это работало в прошлом в моем проекте, но внезапно сегодня я получаю следующую ошибку, когда хочу добавить новую миграцию
Add-Migration MyNewMigration
и я получаю
Could not find assembly '.binMySolutionbinDebugnet452win7-x64MyEFProject.dll'.
Когда я смотрю на этот каталог, он создает exe
вместо a dll
, я предполагаю, что из "emitEntryPoint": true,
-за того, что при компиляции он не должен выдавать мне ошибку отсутствия dll. Мне пришлось добавить это, поскольку это была известная проблема, чтобы заставить миграции EF работать с библиотеками классов
Единственное изменение, которое я помню, заключалось в переходе на Entity Framework Core 1.0.1
from 1.0.0
и обновлении до Visual Studio 2015 Update 3
"Microsoft.AspNetCore.Identity.EntityFrameworkCore": "1.0.0",
"Microsoft.EntityFrameworkCore.Design": "1.0.0-preview2-final",
"Microsoft.EntityFrameworkCore.SqlServer": "1.0.1",
"Microsoft.EntityFrameworkCore.Tools": "1.0.0-preview2-final",
"Microsoft.Extensions.Configuration.Json": "1.0.0",
Я вернул ее "1.0.0"
и перестроил проект, но я все равно получаю ту же ошибку
Почему, когда он работал раньше, он больше не работает?
Ответ №1:
Я установил значение emitEntryPoint
для false
перекомпиляции, и вместо этого он создал a dll
.
При последующем запуске миграции я получил сообщение об ошибке доступа к пути ‘C:Code..ClassLibraryProjectMigrationsMyDbContextModelSnapshot.cs «отказано.
Мне пришлось предоставить Users
права на изменение этого файла, чтобы решить эту проблему.
После этого команды Add_Migrations
создали миграцию и Update-Database
обновили базу данных