.NET MAUI Blazor iOS发布报错:IL1031及ArchivePath参数缺失
.NET MAUI Blazor iOS发布错误:IL1031与CopyArchiveFiles参数缺失修复
针对IL1031错误(Invalid assembly action 'partial')
该错误源于程序集处理逻辑对partial修饰符的兼容问题,常见于链接器配置或SDK版本缺陷:
- 排查程序集属性:检查项目内所有程序集级别的属性声明(如
[assembly: ...]),确认无错误使用partial修饰、无重复声明导致的冲突。 - 临时禁用链接器:在项目
.csproj文件中添加以下配置,跳过链接器优化(注:会增大IPA体积,仅用于排查,后续可按需调整):<PropertyGroup Condition="'$(TargetFramework)' == 'net7.0-ios'"> <MtouchLink>None</MtouchLink> </PropertyGroup> - 升级依赖包:将
Microsoft.iOS、Microsoft.Maui等相关NuGet包及.NET SDK更新至对应版本的最新稳定版,旧版SDK可能存在程序集处理类bug。
针对CopyArchiveFiles缺少ArchivePath参数错误
启用ArchiveOnBuild=true时,MSBuild需明确归档文件路径,可通过以下方式修复:
- 手动指定Mac端归档路径:在发布命令中添加
/p:ArchivePath=/Users/你的Mac用户名/Library/Developer/Xcode/Archives/$(DateTime::Now.ToString('yyyy-MM-dd'))/YourAppName.xcarchive(替换实际用户名和应用名),确保Mac端该路径存在且有读写权限。 - 改用ArchiveDir参数:若无需指定具体归档文件名,可使用
/p:ArchiveDir=/Users/你的Mac用户名/Library/Developer/Xcode/Archives,由系统自动生成归档目录与文件。 - 检查项目配置:确认
.csproj中无自定义归档属性干扰默认流程,比如是否错误覆盖了ArchivePath或ArchiveDir的值。
额外验证步骤
- 清理项目缓存:执行
dotnet clean后重新发布,避免缓存文件引发异常。 - 简化发布命令:先移除非必要参数(如
ServerPassword可改为交互式输入),逐步添加参数排查是否存在参数冲突。
内容的提问来源于stack exchange,提问作者Ciccio Boscaiolo
相关产品推荐
相关产品推荐

