我正试图在macbook M1上使用dotnet ef dbcontext Scaffold,但我遇到了错误:
无法加载/usr/local/share/dotnet/shared/Microsoft。NETCore。App/5.0.11/libhostpolicy.dylib,错误:dlopen(/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.12/libhostpolicy-dylib,0x0001(:已尝试:'/usr/local/sshare/dotnet/shared/Microsoft。NETCore。App/5.0.11/libhostpolicy.dlib'(mach-o文件,但是不兼容的体系结构(具有'x86_64',需要'arm64e'((、'/usr/local/lib/libhostpolicy.dylib'(没有此类文件(、'usr/lib/libhostpolicy.dlib'(没有此文件(从/usr/local/share/dotnet/shared/Microsoft.NETCore.App/5.0.11]加载所需库libhostpolicy.dylib时出错
更新到后会发生这种情况。NET6,但目前的项目仍然是。NET5.该项目正在成功构建和运行,只有当数据库中的脚手架发生变化时,问题才会出现
如果这对其他人有帮助,我也遇到了同样的问题,我似乎有一些旧版本的dotnet在徘徊。
$ dotnet-ef
Failed to load /usr/local/share/dotnet/shared/Microsoft.NETCore.App/3.1.14/libhostpolicy.dylib, error: dlopen(/usr/local/share/dotnet/shared/Microsoft.NETCore.App/3.1.14/libhostpolicy.dylib, 0x0001): tried: '/usr/local/share/dotnet/shared/Microsoft.NETCore.App/3.1.14/libhostpolicy.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e')), '/usr/local/lib/libhostpolicy.dylib' (no such file), '/usr/lib/libhostpolicy.dylib' (no such file)
An error occurred while loading required library libhostpolicy.dylib from [/usr/local/share/dotnet/shared/Microsoft.NETCore.App/3.1.14]
$ dotnet --list-runtimes
Microsoft.AspNetCore.App 3.1.13 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 3.1.14 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.4 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 5.0.5 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 3.1.13 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 3.1.14 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.4 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 5.0.5 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
$ dotnet --list-sdks
3.1.407 [/usr/local/share/dotnet/sdk]
3.1.408 [/usr/local/share/dotnet/sdk]
5.0.201 [/usr/local/share/dotnet/sdk]
5.0.202 [/usr/local/share/dotnet/sdk]
6.0.101 [/usr/local/share/dotnet/sdk]
$ dotnet tool list --global
Package Id Version Commands
--------------------------------------
dotnet-ef 6.0.1 dotnet-ef
我通过自制软件彻底删除并重新安装了dotnet。
$ brew uninstall dotnet-sdk
...
$ ls -la /usr/local/share/
total 0
drwxr-xr-x 2 root wheel 64 17 Jan 14:59 .
drwxr-xr-x 9 root wheel 288 10 Jan 15:57 ..
...
$ brew install dotnet-sdk
Running `brew update --preinstall`...
...
🍺 dotnet-sdk was successfully installed!
$ dotnet --list-runtimes
Microsoft.AspNetCore.App 6.0.1 [/usr/local/share/dotnet/shared/Microsoft.AspNetCore.App]
Microsoft.NETCore.App 6.0.1 [/usr/local/share/dotnet/shared/Microsoft.NETCore.App]
$ dotnet --list-sdks
6.0.101 [/usr/local/share/dotnet/sdk]
$ dotnet tool install dotnet-ef --global
You can invoke the tool using the following command: dotnet-ef
Tool 'dotnet-ef' (version '6.0.1') was successfully installed.
$ dotnet ef
_/__
---==/ \
___ ___ |. |
| __|| __| | ) \
| _| | _| _/ | //|\
|___||_| / \/\
Entity Framework Core .NET Command-line Tools 6.0.1
Usage: dotnet ef [options] [command]
Options:
--version Show version information
-h|--help Show help information
-v|--verbose Show verbose output.
--no-color Don't colorize output.
--prefix-output Prefix output with level.
Commands:
database Commands to manage the database.
dbcontext Commands to manage DbContext types.
migrations Commands to manage migrations.
Use "dotnet ef [command] --help" for more information about a command.