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

JetBrains Rider构建.NET7 MAUI Windows项目时出现MSB3073错误

迁移Xamarin至.NET7后编译net7.0-windows目标框架触发MSB3073错误的排查方案

你遇到的MSB3073错误本质是Windows App SDK的XamlCompiler.exe编译XAML文件时异常退出,代码1通常指向编译过程中存在未被IDE捕获的具体错误,结合Xamarin迁移到.NET7的场景,可按以下方向排查解决:

  • 升级Windows App SDK版本
    你当前使用的microsoft.windowsappsdk 1.2.221209.1版本较旧,对.NET7的目标框架支持存在兼容性问题。将包升级到适配.NET7的最新稳定版(如1.4.x系列),新版本的XamlCompiler修复了大量跨框架编译的问题。

  • 排查XAML文件的迁移残留问题
    Xamarin.Forms的XAML语法与MAUI/WinUI存在差异,残留的旧语法会直接导致编译失败:

    • 替换Xamarin专属命名空间,比如将xmlns:xf="clr-namespace:Xamarin.Forms;assembly=Xamarin.Forms.Core"替换为MAUI标准命名空间xmlns:maui="http://schemas.microsoft.com/dotnet/2021/maui"
    • 移除Xamarin专属控件、标记扩展或自定义渲染器代码,比如Xamarin.Forms.Behaviors、旧的x:Static用法,这些在WinUI环境下无法被正确解析。
  • 获取更详细的编译错误信息
    Rider有时会屏蔽XamlCompiler的具体错误输出,尝试用命令行构建项目,执行以下命令:

    dotnet build -c Debug -f net7.0-windows10.0.19041.0
    

    命令行输出会包含XamlCompiler抛出的具体错误(比如某行XAML的语法问题),这是定位问题最直接的方式。

  • 彻底清理构建残留
    常规清理可能无法完全移除旧的编译缓存:

    1. 执行dotnet clean命令清理项目
    2. 删除项目根目录下的obj、bin文件夹
    3. 删除C:\Users\<username>\.nuget\packages\microsoft.windowsappsdk缓存目录
    4. 重新执行dotnet restore后再构建项目
  • 检查.csproj配置的正确性
    确认项目文件中已移除Xamarin相关配置,且MAUI/Windows目标框架设置正确:

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <TargetFrameworks>net7.0-android;net7.0-ios;net7.0-windows10.0.19041.0</TargetFrameworks>
        <UseMaui>true</UseMaui>
        <SingleProject>true</SingleProject>
        <WindowsPackageType>MSIX</WindowsPackageType>
      </PropertyGroup>
    </Project>
    

    移除任何与Xamarin.Forms相关的PackageReference或Import节点。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 13:25:25