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

新建Xamarin.Forms项目UWP构建报MSB4100错误求助

解决步骤

  1. 修复项目路径
    你报错的核心诱因大概率是项目路径包含空格,错误日志里的路径E:\(应用文件夹路径)\Notes App\...存在空格,MSBuild的字符串判断逻辑对带空格/特殊字符的路径解析会失败,直接触发MSB4100错误。
    把整个解决方案迁移到纯英文、无空格、无特殊字符的路径下,例如直接放在E:\XamarinProjects\NotesApp目录下,避免路径解析异常。

  2. 清理项目缓存
    关闭所有VS窗口,删除以下文件/文件夹:

  • 解决方案根目录下的.vs隐藏文件夹
  • 共享项目、Android项目、UWP项目各自的bin、obj文件夹
    重启VS重新加载解决方案,NuGet引用丢失的问题大部分会直接解决。
  1. 校验UWP项目配置
    右键UWP项目打开属性页,确认以下配置:
  • 「应用」选项卡:目标版本≥10.0.18362.0,最低版本≥10.0.16299.0,和Xamarin.Forms的版本要求匹配
  • 「生成」选项卡:Debug配置下取消勾选「使用.NET Native工具链编译」,该选项仅用于Release正式打包,Debug模式开启会引发大量引用异常
  • 确认UWP项目安装的Xamarin.Forms版本,和共享项目、Android项目的Xamarin.Forms版本完全一致,不要出现版本差。
  1. 手动修复MSB4100错误
    如果完成以上操作后仍然报MSB4100错误,右键UWP项目选择「编辑项目文件」,在文件末尾的</Project>标签之前添加以下配置即可:
<Target Name="BypassMSB4100Validation" BeforeTargets="GetCopyToOutputDirectoryItems">
  <ItemGroup>
    <ReferenceCopyLocalPaths Condition="$([System.String]::new('%(ReferenceCopyLocalPaths.Identity)').EndsWith('System.Runtime.dll'))">
      <NuGetPackageId></NuGetPackageId>
    </ReferenceCopyLocalPaths>
  </ItemGroup>
</Target>

这段配置会绕过MSBuild对System.Runtime.dll的异常校验逻辑,不会影响项目正常功能。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:24:04