全局工具可以安装在默认目录或特定位置.默认目录为:操作系统路径Linux/macOS $HOME/.dotnet/toolsWindows %USERPROFILE%.dotnetools因此,您应该将 $HOME/.dotnet/tools/ 添加到您的 $PATH.但还要注意文档中的这一部分:这些位置是在SDK第一次运行时添加到用户路径中的,所以安装在那里的Global Tools可以直接调用.所以,听起来好像出了点问题.如果您使用手动 tarball 进行安装,则 SDK 会出错,您应该将此错误报告给 Microsoft.如果您使用分发包,他们就会搞砸,您应该将此作为错误报告给他们.I am using .NET Core 2.0 on Arch Linux / Visual Studio Code and am trying to get EF tools to work, but I keep getting the error:I've just about looked everywhere and none of the suggestions worked.The result of running 'dotnet ef':[wasiim@wasiim-PC WebApiServerApp]$ dotnet ef --helpCannot find command 'dotnet ef', please run the following command to installdotnet tool install --global dotnet-ef[wasiim@wasiim-PC WebApiServerApp]$ dotnet tool list -gPackage Id Version Commands---------------------------------------------------dotnet-dev-certs 2.2.0 dotnet-dev-certsdotnet-ef 2.2.3 dotnet-ef[wasiim@wasiim-PC WebApiServerApp]$This is the 'dotnet --info' result, if it's of help:[wasiim@wasiim-PC WebApiServerApp]$ dotnet --info.NET Core SDK (reflecting any global.json): Version: 2.2.105 Commit: 7cecb35b92Runtime 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-downloadThis is my .csproj file:<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> 解决方案 Note to readers: If you haven't installed dotnet ef, you need to install it first: dotnet tool install --global dotnet-ef. The question-asker already did that. You need to do that first before the rest of this answer can help.How to fix thisFor Linux and macOS, add a line to your shell's configuration:bash/zsh:export PATH="$PATH:$HOME/.dotnet/tools/"csh/tcsh:set path = ($path $HOME/.dotnet/tools/)When you start a new shell/terminal (or the next time you log in) dotnet ef should work.For Windows:See this question on how to add to the PATH environment variable.You need to add %USERPROFILE%.dotnetools to the PATH.What's going on?The .NET Core 3.0 (preview) version of this failure is much more illuminating:$ dotnet efCould 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.The second and the third one both refer to dotnet trying to find a dotnet-ef command but can't find it. As the third point says, dotnet-ef is not in your path.Here's what the docs say:So, you should add $HOME/.dotnet/tools/ to your $PATH.But also note this part from docs:So, it sounds like something went wrong. If you installed using a manual tarball, the SDK screwed up and you should report this bug to Microsoft. If you use a distribution package, they screwed up and you should report this as a bug to them. 这篇关于找不到命令“dotnet ef"的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 上岸,阿里云!
09-03 02:14