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

C#解决方案如何按条件包含排除项目?Xamarin多平台AppCenter构建问题

问题解答

完全可以通过配置实现指定项目的按需包含/排除,以下是两种可落地的实现方案:

方案1:基于解决方案配置的生成开关(无侵入,兼容性最强)

这是你当前临时方案的标准化版本,无需修改解决方案底层代码,适配所有Visual Studio版本和AppCenter构建规则:

  • 右键解决方案资源管理器中的根解决方案节点,选择「属性」→ 进入「配置属性」→「配置」页面
  • 点击「配置管理器」,新建专属构建配置,例如命名为AppCenter_Android、AppCenter_iOS
  • 针对每个专属配置,在「生成」列仅勾选对应需要构建的平台项目,取消UWP项目的生成勾选,同时确认对应平台的架构参数匹配(Android选择对应ABI架构、iOS选择iPhone/iPhoneSimulator)
  • 保存配置后,在AppCenter的构建设置中指定对应构建任务使用的配置名称即可。

方案2:解决方案文件内置条件逻辑(更灵活,适合复杂场景)

Visual Studio 2019及以上版本支持在.sln文件中直接添加Condition条件属性,控制项目的加载和生成规则:

  • 用文本编辑器打开你的.sln文件,找到UWP项目对应的Project定义段,默认格式如下:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "你的UWP项目名", "你的UWP项目路径\项目名.csproj", "{项目唯一GUID}"
EndProject
  • 给Project节点添加条件判断即可实现按需加载,例如仅当构建配置包含UWP关键词时才加载该项目:
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "你的UWP项目名", "你的UWP项目路径\项目名.csproj", "{项目唯一GUID}"
Condition("$(Configuration.Contains('UWP'))")
EndProject
  • 也可以配合AppCenter的内置环境变量判断,例如仅在非AppCenter构建环境,或者明确构建UWP配置时才加载该项目:
Condition("$(APP_CENTER_BUILD) == '' Or $(Configuration.Contains('UWP'))")

注意事项

  • 修改.sln底层代码前请先备份原有文件,避免语法错误导致解决方案无法正常加载
  • 团队协作场景优先选择方案1,不会出现不同成员本地加载解决方案内容不一致的问题
  • AppCenter构建时支持传入自定义环境变量,可以配合条件逻辑实现更复杂的项目筛选规则

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:06:05