发生致命错误,找不到所需的库libhostfxr.dylib

AVE*_*imi 6 .net-core asp.net-core

在尝试向 mac 上的 .net core 应用程序添加身份验证时,使用以下命令:

dotnet aspnet-codegenerator identity -h
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

Macintosh-2:Website abd$ dotnet aspnet-codegenerator Identity -h 发生致命错误,找不到所需的库 libhostfxr.dylib。如果这是一个独立的应用程序,则该库应存在于 [/Users/abd/.dotnet/tools/.store/dotnet-aspnet-codegenerator/2.2.3/dotnet-aspnet-codegenerator/2.2.3/tools/ 中netcoreapp2.1/any/]。如果这是依赖于框架的应用程序,请将运行时安装在默认位置 [/usr/local/share/dotnet] 或使用 DOTNET_ROOT 环境变量指定运行时位置。中号

小智 8

对于 Mac M1 处理器,.NET 库不位于默认安装位置"usr/local/share/dotnet";而是在其子目录之一中"./x64"

您必须设置DOTNET_ROOT环境变量以指向该子目录。

export DOTNET_ROOT=/usr/local/share/dotnet/x64

我猜想这个相同的解决方案可以扩展到 M1 处理器之外,只要您将 DOTNET_ROOT 设置为包含 libhostfxr.xx 的任何目录

  • 我的 M1 Mac 上没有这样的“x64”目录。刚刚全新安装了最新的 dotnet 6,但没有成功。 (3认同)

Sha*_*had 6

这为我解决了这个问题:

dotnet tool uninstall dotnet-ef --global
dotnet tool install dotnet-ef --global -a arm64
Run Code Online (Sandbox Code Playgroud)


Jua*_*ews 3

Dotnet 可执行文件将出现在 $DOTNET_ROOT 中,您可以使用which dotnet或找到它

readlink $(which dotnet)
Run Code Online (Sandbox Code Playgroud)

成功的 dotnet 安装将有该libhostfxr.dylib文件$DOTNET_ROOT/host/fxr/$version/

如果是这样,这是一个权限问题,使用 sudo 运行即可。

sudo dotnet aspnet-codegenerator identity -h
Run Code Online (Sandbox Code Playgroud)

参考号