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

基于.NET Standard的Xamarin Forms项目UWP构建失败求助

解决.NET Standard Xamarin项目UWP端构建缺失xr.xml/xbf文件及程序集解析问题

我之前也碰到过几乎一模一样的情况,.NET Standard项目确实没有UWP类库那个「Generate library layout」的可视化配置选项,但咱们可以手动修改项目文件来实现相同效果,一步步来解决:

1. 先做基础清理重建

先把解决方案的缓存彻底清一遍,很多时候文件找不到的问题都是缓存损坏导致的:

  • 右键解决方案 → 清理解决方案
  • 先单独右键myapp.Basic项目 → 生成,确保类库本身编译无错误
  • 最后右键UWP项目 → 生成

2. 手动给.NET Standard项目添加Generate Library Layout配置

因为可视化选项不存在,咱们直接编辑项目文件触发XAML相关文件生成:

  • 右键myapp.Basic项目 → 卸载项目
  • 再次右键项目 → 编辑myapp.Basic.csproj
  • 在<PropertyGroup>节点里添加这两行配置:
    <GenerateLibraryLayout>true</GenerateLibraryLayout>
    <EnableXBindings>true</EnableXBindings>
    
  • 保存文件后,右键项目 → 重新加载项目

这两个属性就是「Generate library layout」选项背后的实际配置项,添加后会自动生成需要的xr.xml文件,解决第一个缺失文件的报错。

3. 确认XAML文件的生成操作正确

检查myapp.Basic里的所有XAML文件:

  • 选中XAML文件,查看右侧属性面板
  • 确认生成操作设置为Page,而不是Content或其他类型

只有设为Page,编译器才会生成对应的.xbf文件,解决缺失MainPage.xbf、App.xbf的问题。

4. 修复程序集解析错误

这个问题通常是UWP项目没正确引用或复制myapp.Basic的程序集:

  • 先确认UWP项目对myapp.Basic的引用是项目引用(右键UWP项目→添加→引用→项目,选中myapp.Basic),而不是直接引用dll文件
  • 如果还是不行,手动在UWP项目的.csproj里添加依赖复制配置:
    卸载UWP项目,编辑.csproj,添加下面的ItemGroup(注意替换路径和.NET Standard版本为你实际的项目信息):
    <ItemGroup>
      <Content Include="..\myapp.Basic\bin\$(Configuration)\netstandard2.0\myapp.Basic.dll">
        <Link>myapp.Basic.dll</Link>
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      </Content>
      <Content Include="..\myapp.Basic\bin\$(Configuration)\netstandard2.0\myapp.Basic.xr.xml">
        <Link>myapp.Basic.xr.xml</Link>
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      </Content>
    </ItemGroup>
    

5. 核对平台目标一致性

确保UWP项目的构建平台和目标平台一致:

  • 顶部工具栏的解决方案平台选择x86(和你报错里的路径匹配)
  • 右键UWP项目→属性→生成→平台目标,设置为x86

做完这些步骤后,重新构建UWP项目,应该就能解决所有报错了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:35:19