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

Xamarin Forms项目:如何改用GitHub源码替代NuGet包

替换Shiny NuGet包为GitHub源码适配Xamarin Forms方案

1. 拉取并准备源码

  • 克隆Shiny仓库到本地:git clone https://github.com/shinyorg/shiny.git
  • 切换到兼容Xamarin的分支:优先使用main分支(官方声明兼容Xamarin),若仍有兼容性问题,可尝试切换到v3.x分支(针对Xamarin优化的稳定版本)

2. 修正目标框架不兼容问题

编译失败的核心原因是Shiny.BluetoothLE默认目标为netstandard2.1,而Xamarin Forms项目通常基于netstandard2.0,需调整Shiny项目配置:

  • 打开Shiny.BluetoothLE项目的.csproj文件
  • 将单目标框架配置:
    <TargetFramework>netstandard2.1</TargetFramework>
    
    修改为多目标框架(同时兼容2.0和2.1)或直接切换到netstandard2.0:
    <!-- 多目标推荐,兼顾Xamarin和MAUI -->
    <TargetFrameworks>netstandard2.0;netstandard2.1;net6.0-android;net6.0-ios</TargetFrameworks>
    
  • 同步调整其他Shiny核心子项目(如Shiny.Core、Shiny.Notifications等)的目标框架配置,确保与你的Xamarin项目兼容

3. 替换NuGet引用为源码项目

  • 在你的Xamarin Forms项目中,卸载所有Shiny相关的NuGet包(包括依赖的子模块)
  • 在解决方案中右键选择添加 -> 现有项目,导入本地Shiny源码中你需要的子项目(例如Shiny.Core、Shiny.BluetoothLE,以及对应Android/iOS平台的项目)
  • 右键你的Xamarin Forms项目,选择添加 -> 项目引用,勾选已导入的Shiny子项目

4. 修复依赖与平台适配

  • 检查Shiny子项目的NuGet依赖:打开Shiny项目的NuGet包管理器,确保所有依赖包(如Plugin.BLE、Newtonsoft.Json等)的版本与你的Xamarin项目环境兼容
  • 针对Android/iOS平台项目,需额外添加对应Shiny平台项目的引用(如Shiny.BluetoothLE.Android、Shiny.BluetoothLE.iOS),并确认平台项目的目标SDK版本与你的项目匹配(例如Android目标SDK 11+,iOS目标SDK 14+)

5. 调试与代码修改

  • 现在可直接在Shiny源码中设置断点、修改逻辑,调试你的Xamarin Forms项目
  • 修改代码后重新编译Shiny子项目,主项目会自动引用更新后的代码

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 12:31:23