У меня довольно странная ситуация с миграциями Visual Studio и EF в профиле Publi sh. Дано:
- Visual Studio 2019 v16.4
- . NET Базовый проект. Цели. NET Core 3.1
- EF 3.1
- Azure publi sh profile
Я создал миграции в локальном проекте и при попытке перечислять миграции в профиле publi sh, я получаю
Run dotnet tool restore to make the dotnet-ef command available
![enter image description here](https://i.stack.imgur.com/4l21Q.png)
Я не знаю, что означает эта ошибка, потому что tnet -ef инструменты кажутся установленными:
PM> dotnet --version
3.1.101
PM> dotnet ef --version
Entity Framework Core .NET Command-line Tools
3.1.1
PM> dotnet ef dbcontext list --json --project MyUIProject
Build started...
Build succeeded.
[
{
"fullName": "MyDataProject.MyDbContext",
"safeName": "MyDbContext",
"name": "MyDbContext",
"assemblyQualifiedName": "MyDataProject.MyDbContext, MyDataProject, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
}
]
PM> dotnet tool restore
Restore was successful.
PM>
Последняя строка ничего не меняет. Я могу использовать команды PS, такие как Add-Migration
, Update-Database
, или команды cmd, такие как dotnet ef migrations add
, dotnet ef database update
. dotnet-ef <...>
тоже работает. Единственное место, где они не работают - опубликовать sh настройки профиля. Я не могу установить флажок для запуска миграций в publi sh.
Data
, проект ссылался на следующие пакеты, связанные с EF:
<...>
<PackageReference Include="microsoft.aspnetcore.Identity.EntityFrameworkCore" Version="3.1.1" />
<PackageReference Include="microsoft.EntityFrameworkCore" Version="3.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="3.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="3.1.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="System.Data.SqlClient" Version="4.8.0" />
<...>
UI
только ссылки на проекты Design
:
<...>
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.1">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<...>
Существует множество похожих вопросов, таких как: Невозможно перечислить миграции Entity Framework в Visual Studio 2019 из-за ошибки tnet ef dbcontext - json
Кажется, что их общая проблема в том, что у них не было установленных инструментов, потому что dotnet ef
команды больше не являются частями. NET Core SDK, и это не мой случай, так как локальные инструменты EF установлен и работает из командной строки.