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

在Visual Studio App Center构建Xamarin Forms应用时遇重复EmbeddedResource项错误

解决Visual Studio App Center构建Xamarin Forms(.NET Standard 2.0)时的重复EmbeddedResource错误

嘿,这个问题我太熟了!之前帮朋友排查过一模一样的情况,核心原因就是App Center的构建环境用的旧版.NET SDK(2.0.3)和你本地更新后的Visual Studio、Xamarin Forms版本不兼容——旧SDK会自动把项目里的XAML文件都标记为EmbeddedResource,而新版Xamarin Forms的构建逻辑也会处理这些XAML资源,两边一叠加就触发了重复项错误。

给你几个靠谱的解决方案,按优先级来:

方案1:显式排除重复的XAML资源

直接在你的.NET Standard项目的.csproj文件里添加配置,告诉旧SDK不要自动包含XAML文件,交给Xamarin Forms的工具链来处理:

<ItemGroup>
  <!-- 排除所有XAML文件,避免SDK自动添加为EmbeddedResource -->
  <EmbeddedResource Remove="**\*.xaml" />
</ItemGroup>

如果担心误排除其他XAML资源,也可以精准指定要排除的目录,比如只排除页面或控件的XAML:

<ItemGroup>
  <EmbeddedResource Remove="Views\*.xaml" />
  <EmbeddedResource Remove="Controls\*.xaml" />
</ItemGroup>

方案2:升级App Center的.NET SDK版本

在项目根目录新建一个global.json文件,指定和你本地一致的.NET SDK版本(比如2.1.801或更高,根据你本地的版本来):

{
  "sdk": {
    "version": "2.1.801"
  }
}

新版本的.NET SDK已经修复了默认资源包含的逻辑冲突,App Center构建时会自动下载并使用你指定的SDK版本。

方案3:锁定Xamarin Forms版本一致性

确保App Center构建时使用的Xamarin Forms版本和你本地测试通过的版本完全一致。在.csproj文件里明确指定版本号:

<PackageReference Include="Xamarin.Forms" Version="5.0.0.2515" />

(把版本号替换成你本地正在用的那个稳定版本)

验证步骤

修改完配置后,先在本地重新构建项目确认没有问题,再推送到App Center触发构建,那个Duplicate 'EmbeddedResource'的错误应该就消失啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:08:35