使用CommunityToolkit.MVVM的ObservableProperty报错求助
解决CommunityToolkit.MVVM ObservableProperty重复定义错误
以下是几个常见的排查和解决方向:
检查手动定义的重复成员
确认你的MainViewModel.cs中没有手动编写与自动生成成员同名的代码:- 不要自己定义
public string? FileToPlay { get; set; }属性([ObservableProperty]特性会自动生成该属性) - 若要自定义属性变更逻辑,需以部分方法的形式编写,比如
partial void OnFileToPlayChanging(string? oldValue, string? newValue);,不能写成普通的完整方法,否则会和源生成器生成的代码冲突
- 不要自己定义
清理重建项目,清除残留文件
源生成器的临时缓存可能导致重复生成代码:- 右键项目 → 选择「清理」
- 删除项目根目录下的
bin和obj文件夹 - 右键项目 → 选择「生成」或「重新生成」
检查NuGet包版本与引用
- 确保只安装了
CommunityToolkit.Mvvm包,没有同时引用旧版的MvvmToolkit或其他冲突包 - 在NuGet包管理器中更新
CommunityToolkit.Mvvm到最新稳定版本,旧版本可能存在源生成器的bug
- 确保只安装了
重置VS相关缓存
如果是VS的源生成器服务异常:- 关闭所有VS窗口
- 删除项目根目录下的隐藏
.vs文件夹 - 重新打开VS和项目;若仍有问题,可尝试打开开发者命令提示符执行
devenv /resetuserdata(注意:此操作会重置VS的用户配置,建议先备份)
内容的提问来源于stack exchange,提问作者ClarkG
相关产品推荐
相关产品推荐

