Не можете найти команду 'dotnet ef'? - PullRequest
1 голос
/ 03 июля 2019

Я использую .NET core 2.0 в Arch VScode и пытаюсь заставить работать инструменты EF, но продолжаю получать эту ошибку «не могу найти команду dotnet ef».Я только что посмотрел везде, и ни одно из предложений не сработало.Так что, если вы можете помочь, это будет высоко ценится.

Результат выполнения 'dotnet ef'

[wasiim@wasiim-PC WebApiServerApp]$ dotnet ef --help
Cannot find command 'dotnet ef', please run the following command to install

dotnet tool install --global dotnet-ef
[wasiim@wasiim-PC WebApiServerApp]$ dotnet tool list -g
Package Id            Version      Commands        
---------------------------------------------------
dotnet-dev-certs      2.2.0        dotnet-dev-certs
dotnet-ef             2.2.3        dotnet-ef       
[wasiim@wasiim-PC WebApiServerApp]$ 

это результат dotnet --info, если он помогает

[wasiim@wasiim-PC WebApiServerApp]$ dotnet --info
.NET Core SDK (reflecting any global.json):
 Version:   2.2.105
 Commit:    7cecb35b92

Runtime Environment:
 OS Name:     arch
 OS Version:  
 OS Platform: Linux
 RID:         arch-x64
 Base Path:   /opt/dotnet/sdk/2.2.105/

Host (useful for support):
  Version: 2.2.3
  Commit:  6b8ad509b6

.NET Core SDKs installed:
  2.2.105 [/opt/dotnet/sdk]

.NET Core runtimes installed:
  Microsoft.NETCore.App 2.2.3 [/opt/dotnet/shared/Microsoft.NETCore.App]

To install additional .NET Core runtimes or SDKs:
  https://aka.ms/dotnet-download

Это мой файл .csproj

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="Lucene.Net.Analysis.Common" Version="4.8.0-beta00005" />
    <PackageReference Include="Lucene.Net.QueryParser" Version="4.8.0-beta00005" />
    <PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.5" />
   <PackageReference Include="Lucene.Net" Version="4.8.0-beta00005" />
    <PackageGroup Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.0" />
    <PackageReference Include="Microsoft.AspNetCore.Razor.Design" Version="2.2.0" PrivateAssets="All" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="2.2.4" />
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.3" />

  </ItemGroup>

</Project>

Ответы [ 2 ]

3 голосов
/ 03 июля 2019

Иногда, когда вы устанавливаете новую версию dotnet sdk, она попадает в PATH.

. Вы должны вручную добавить папку .dotnet/tools из вашей домашней директории *От 1008 * до PATH.

1 голос
/ 03 июля 2019

. .NET Core 3.0 (предварительная версия) версия этого сбоя гораздо ярче:

$ dotnet ef
Could not execute because the specified command or file was not found.
Possible reasons for this include:
  * You misspelled a built-in dotnet command.
  * You intended to execute a .NET Core program, but dotnet-ef does not exist.
  * You intended to run a global tool, but a dotnet-prefixed executable with this name could not be found on the PATH.

Второй и третий относятся к dotnet, пытающемуся найти команду dotnet-ef, но не могут ее найти. Как говорится в третьем пункте, dotnet-ef не на вашем пути.

Вот что говорят документы :

Глобальные инструменты могут быть установлены в каталоге по умолчанию или в определенном месте. Каталоги по умолчанию:

OS Path

Linux/macOS $HOME/.dotnet/tools

Windows %USERPROFILE%\.dotnet\tools

Итак, вы должны добавить $HOME/.dotnet/tools/ к вашему $PATH.

Но также обратите внимание на эту часть из документов:

Эти местоположения добавляются в путь пользователя при первом запуске SDK, поэтому установленные там глобальные инструменты можно вызывать напрямую.

Так что, похоже, что-то пошло не так. Если вы установили с помощью ручного архива, SDK облажался, и вы должны сообщить об этой ошибке в Microsoft. Если вы используете дистрибутив, он облажался, и вам следует сообщить об этом как об ошибке.

...