Я работаю над основами проекта ASP.Net Core MVC, и мне интересно, почему я не могу создать свою первоначальную миграцию.
Я захожу в папку проекта и запускаю "dotnet ef" в CMD и получаю сообщение об ошибке "Не найден исполняемый файл, соответствующий команде dotnet-ef".
Я считаю, что это странно, поэтому я пытаюсь собрать свое приложение в VS2017 и получаю следующую ошибку:
Severity Code Description Project File Line Suppression State
Error NU1605 Detected package downgrade: Microsoft.NETCore.App from 2.0.6
to 2.0.0. Reference the package directly from the project to select a
different version.
FiberLocator -> Microsoft.EntityFrameworkCore.Tools.DotNet 2.0.2 ->
Microsoft.NETCore.App (>= 2.0.6)
FiberLocator -> Microsoft.NETCore.App (>= 2.0.0) FiberLocator
C:\Users\user\Google Drive\ASP.Net Core
Projects\FiberLocator\FiberLocator.csproj 1
Мой файл .csproj выглядит следующим образом.
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<Folder Include="Data\Migrations\" />
<Folder Include="wwwroot\" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.6" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="2.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.0.2" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.2" />
<PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.3" />
</ItemGroup>
</Project>
Насколько я понимаю, пакет ..Tools.DotNet дает мне возможность использовать "dotnet ef". Я даже пытался установить последнюю версию на момент написания (даже предварительную сборку), и она все равно не работала, выдавая мне ошибку «неизвестная команда» сверху.
Как изменить пакет NETCore.App на 2.0.0 или сделать пакет Tools.DotNet совместимым? На сайте NuGet нет более поздней версии, чем 2.0.2, поэтому я понятия не имею, что здесь делать.
Любая помощь приветствуется.
Спасибо
Спасибо! По какой-то причине, когда я добавил пакет через NuGet, он пометил пакет как «PackageReference», а не как инструмент.... Спасибо VS2017! :)
@Pilapodapostache да, в настоящее время это не может произойти автоматически (пока? Я видел проблему на GitHub много лет назад). Вы должны отредактировать файл
csproj
вручную.