如何在Ubuntu系统的Rider中同时加载net5.0与.NET Framework 4.7.2项目并解决程序集引用错误
解决Ubuntu Rider中同时加载net5.0与.NET Framework 4.7.2项目的问题
我来帮你搞定这个跨框架项目的加载问题——核心原因是你之前用了全局MSBuild设置,而Mono的MSBuild和.NET SDK的MSBuild各自只支持一种框架体系,所以得给每个项目单独指定对应的MSBuild版本。
具体解决步骤
1. 确认依赖安装完整性
首先确保你已经装全了必要的组件:
- 验证Mono开发包(包含.NET Framework引用集):执行
sudo apt install mono-devel(如果之前只装了mono-runtime,这个包会补上所有.NET Framework的targeting packs) - 验证.NET 5 SDK:
dotnet --version确认输出是5.0.x版本
2. 为每个项目单独配置MSBuild版本
Rider支持为单个项目指定MSBuild,不需要全局统一:
- 右键点击你的net5.0项目 → 选择「Properties」(属性)
- 在属性窗口中,找到「Build」分类下的「MSBuild Settings」(或者在General标签页里找MSBuild版本选项)
- 选择「Use MSBuild version from .NET SDK (16.0)」(也就是你通过Snap安装的dotnet-sdk对应的MSBuild)
- 同理,右键点击**.NET Framework 4.7.2项目** → 进入属性
- 选择「Use MSBuild version from Mono (15.0)」
3. 重新加载解决方案
配置完成后,右键点击解决方案根节点 → 选择「Reload All Projects」,等待项目重新加载完成。
额外排查方案(如果上述步骤无效)
- 清理Rider缓存:点击顶部菜单栏「File」→「Invalidate Caches...」→ 选择「Invalidate and Restart」,重启后再加载解决方案
- 检查Mono的.NET Framework引用集路径:执行
ls /usr/lib/mono/4.7.2-api/,如果目录为空,说明mono-devel没装对,重新执行安装命令
内容的提问来源于stack exchange,提问作者lofidevops
相关产品推荐
相关产品推荐

