【问题标题】:A fatal error occurred, the required library libhostfxr.dylib could not be found发生致命错误,找不到所需的库 libhostfxr.dylib
【发布时间】:2019-09-26 05:58:21
【问题描述】:

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

dotnet aspnet-codegenerator identity -h

我收到此错误:

Macintosh-2:Website abd$ dotnet aspnet-codegenerator identity -h A 发生致命错误,所需的库 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 环境变量来指定运行时位置。 M

【问题讨论】:

    标签: asp.net-core .net-core


    【解决方案1】:

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

    readlink $(which dotnet)
    

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

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

    sudo dotnet aspnet-codegenerator identity -h
    

    Ref

    【讨论】:

    • 我有同样的问题,但文件 libhostfxr.so。 “which dotnet”返回“/home/pi/dotnet/dotnet”,libhostfxr.so 出现在 /dotnet/host/fxr/5.0.6 中,我在开始时使用 sudo 运行应用程序,但仍然出现错误。
    【解决方案2】:

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

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

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

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

    【讨论】:

      【解决方案3】:

      如果您在计算机上安装/卸载了 .net 框架,则链接可能在错误的文件夹中查找。

      使用命令 which dotnet 检查 dotnet 位置 例如,位置应该是这样的: /usr/local/share/dotnet/dotnet

      然后,检查文件 /etc/dotnet/install_location 应包含上述路径的一行。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-09-23
        • 2021-12-30
        • 2018-04-27
        • 1970-01-01
        • 2013-01-21
        • 2014-10-03
        • 2022-10-19
        相关资源
        最近更新 更多