You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Avalonia在macOS构建.app文件时遇错误求助

解决Avalonia打包macOS .app文件失败问题

排查方向与解决方案

1. 验证外部DLL的跨平台兼容性

macOS对非适配的.NET DLL存在兼容性限制,尤其是包含非托管代码的文件:

  • 确认外部DLL是针对net6.0-macos(或项目对应的Avalonia目标框架)编译的版本,避免使用仅Windows兼容的DLL
  • 若为跨平台DLL,检查其依赖的原生库(如.dylib)是否已正确纳入项目并设置为随输出复制

2. 调整项目打包配置

在项目的.csproj文件中添加以下配置,确保外部DLL被正确嵌入到.app包内:

<ItemGroup>
  <!-- 替换为你的外部DLL路径,确保文件被复制并嵌入应用包 -->
  <None Include="你的外部DLL路径">
    <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    <CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
    <EmbedInApp>true</EmbedInApp>
  </None>
</ItemGroup>

3. 修复.app包权限与签名异常

手动复制DLL可能导致.app包权限或签名失效,可通过以下命令修复:

  • 重新签名.app包:
    codesign --force --deep --sign - /你的应用路径/app.app
    
  • 验证签名有效性:
    codesign -vvv /你的应用路径/app.app
    

4. 通过命令行打包获取详细日志

使用命令行执行打包操作,查看完整错误信息定位问题:

dotnet publish -c Release -r osx-x64 --self-contained true

重点关注输出中与外部DLL相关的报错提示

5. 更新Avalonia打包工具

确保使用最新版本的Avalonia模板与打包工具,执行更新后重新尝试打包:

dotnet new install Avalonia.Templates

内容的提问来源于stack exchange,提问作者Muhammad Taha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 12:01:05