M1 Mac(linux-arm64)环境PostSharp无法构建问题咨询
PostSharp 苹果M1/linux-arm64架构构建失败解决方案
方案1:升级PostSharp版本(优先推荐)
PostSharp 从6.10.0及以上版本已正式支持linux-arm64运行时与苹果Silicon架构,你只需要将项目中PostSharp相关依赖的版本号从6.9.8升级到6.10.x系列最新稳定版即可,无需改动其他业务代码。修改后的包引用参考如下:
<ItemGroup> ... <PackageReference Include="PostSharp" Version="6.10.18" /> <PackageReference Include="PostSharp.Patterns.Caching" Version="6.10.18" /> <PackageReference Include="PostSharp.Patterns.Caching.Redis" Version="6.10.18" /> ... </ItemGroup>
6.10.x系列完全兼容.NET 5,不需要升级你的项目框架版本。
方案2:保留现有版本使用Rosetta转译构建
如果因业务限制不能升级PostSharp版本,可通过x86模拟运行的方式构建:
- 本地Mac环境构建:找到Launchpad中的「终端」,右键点击选择「显示简介」,勾选「使用Rosetta打开」,重启终端后再执行构建命令即可正常编译
- Docker容器构建:在Dockerfile的基础镜像声明中指定x86平台,示例如下:
FROM --platform=linux/amd64 mcr.microsoft.com/dotnet/sdk:5.0 AS build
该方式构建出的程序可在M1设备上正常运行,无需额外修改。
关于自行编译的说明
PostSharp核心功能为闭源软件,官方未公开完整源代码,你无法自行编译出支持arm64架构的全功能版本,第三方开源的精简分支不包含你用到的缓存模式组件,无法替代官方包使用,不推荐尝试。
内容的提问来源于stack exchange,提问作者Marshal
相关产品推荐
相关产品推荐

