Mac M1运行ASP.NET应用时遇libhostpolicy.dylib缺失错误求助
解决Mac M1上ASP.NET应用启动时
libhostpolicy.dylib缺失问题 问题根源
你的应用在Windows上以依赖框架模式运行,但拷贝到Mac M1后,因TGD_Soft_Apis.runtimeconfig.json未指定框架配置,被系统当作独立应用处理。独立应用需要包含对应平台的完整运行时文件,而当前目录缺少Mac ARM64架构的libhostpolicy.dylib,导致启动失败。
可行解决方案
方案1:修复配置,以依赖框架模式运行
- 打开路径
/Users/facundomartinez/Documents/ASP_Local_x64_01/TGD_Soft_Apis.runtimeconfig.json - 添加框架配置(替换为你实际使用的.NET版本,比如net6.0、net7.0):
{ "runtimeOptions": { "tfm": "net6.0", "framework": { "name": "Microsoft.AspNetCore.App", "version": "6.0.*" } } }
- 保存文件后,确认Mac已安装对应.NET Runtime(可通过
dotnet --list-runtimes检查已安装的运行时版本) - 在终端执行命令启动应用:
dotnet TGD_Soft_Apis.dll
方案2:重新发布适配Mac M1的独立应用
- 在项目目录下打开终端,执行发布命令(指定ARM64架构):
dotnet publish -c Release -r osx-arm64 --self-contained true
- 将发布后
bin/Release/netX/osx-arm64/publish目录下的所有文件拷贝到Mac目标路径 - 直接运行可执行文件:
./TGD_Soft_Apis
注意事项
- 方案1需要Mac预先安装对应.NET Runtime,适合频繁更新代码的开发场景
- 方案2的独立应用包含完整运行时,无需依赖Mac上的.NET环境,适合部署分发
内容的提问来源于stack exchange,提问作者Facundo Martinez
相关产品推荐
相关产品推荐

