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

.NET MAUI调用平台特定代码在JetBrains Rider编译失败问题

解决Rider中.NET MAUI平台特定代码编译报错CS8795的问题

问题原因

你遇到的CS8795错误是严格遵循C#语法规则导致的:带有访问修饰符(如public、protected)的partial方法必须存在对应的实现部分。
Visual Studio对该规则的检查存在宽松场景,但Rider严格执行C#规范,因此触发了报错。

修复步骤

  1. 检查共享项目中的partial方法定义
    打开DeviceOrientationService.cs共享代码文件,定位GetOrientation()方法:

    • 若方法带有public/protected等访问修饰符,要么移除这些修饰符(让它成为默认的private partial方法,无实现时编译器会自动忽略),要么确保所有目标平台项目中都存在对应实现。
    • 错误示例(带访问修饰符但无实现):
      public partial class DeviceOrientationService
      {
          // 错误:带public修饰符的partial方法必须有实现
          public partial Orientation GetOrientation();
      }
      
    • 正确写法1(移除访问修饰符):
      public partial class DeviceOrientationService
      {
          // 默认private,无实现也不会报错
          partial Orientation GetOrientation();
      }
      
    • 正确写法2(保留访问修饰符,确保平台有实现):
      共享代码:
      public partial class DeviceOrientationService
      {
          public partial Orientation GetOrientation();
      }
      
      平台实现代码(以Android为例):
      public partial class DeviceOrientationService
      {
          public partial Orientation GetOrientation()
          {
              // 平台特定实现逻辑
              return Orientation.Portrait;
          }
      }
      
  2. 验证平台项目的partial方法签名一致性
    确保各平台(Android、iOS、Windows等)的DeviceOrientationService实现文件中,GetOrientation()方法的访问修饰符、返回值、参数列表与共享代码完全匹配。

  3. 清理并重建解决方案
    在Rider中依次执行:

    • Build > Clean Solution
    • Build > Rebuild Solution
      清除编译缓存可能引发的异常问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 06:10:58