使用Visual Studio 2017在Windows10构建MonoDevelop时引用解析失败求助
批量解决MonoDevelop在VS2017中引用未解析的方案
我之前帮朋友处理过类似的MonoDevelop构建问题,在Windows 10上用VS2017 Community确实容易遇到这种批量引用未解析的坑,给你几个高效的批量解决办法,不用一个个项目手动修改:
1. 使用MSBuild全局配置文件(Directory.Build.props)
这是最推荐的方案,MSBuild会自动读取解决方案根目录下的Directory.Build.props文件,所有项目都会继承其中的配置,一次性搞定所有引用路径:
- 打开记事本,创建一个名为
Directory.Build.props的文件,内容如下:
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <PropertyGroup> <!-- 添加所有需要的Mono依赖路径,按你的需求补充其他目录 --> <ReferencePath> C:\Program Files (x86)\Mono\lib\atk\; C:\Program Files (x86)\Mono\lib\glade\; C:\Program Files (x86)\Mono\lib\gtk-sharp-2.0\; C:\Program Files (x86)\Mono\lib\mono\gtk-sharp\; $(ReferencePath) <!-- 保留原有项目的引用路径 --> </ReferencePath> </PropertyGroup> </Project>
- 将这个文件保存到MonoDevelop解决方案的根目录(和
.sln文件同目录)。 - 在VS2017中右键解决方案,选择“重新加载解决方案”,所有项目会自动应用这些全局引用路径。
2. 配置解决方案级全局引用路径
VS2017支持直接在解决方案层面设置全局引用路径,应用到所有项目:
- 在VS2017中打开MonoDevelop解决方案,右键点击解决方案名称,选择“属性”。
- 在弹出的属性窗口中,选择通用属性 -> 框架和引用路径。
- 在“引用路径”输入框中添加所有需要的Mono依赖路径(用分号分隔),比如:
C:\Program Files (x86)\Mono\lib\atk\;C:\Program Files (x86)\Mono\lib\glade\;C:\Program Files (x86)\Mono\lib\gtk-sharp-2.0\ - 勾选窗口下方的将此路径应用到所有项目(如果有这个选项),点击“确定”后重新加载解决方案。
3. 配置系统环境变量让MSBuild自动查找
通过设置系统的LIB环境变量,让MSBuild自动搜索Mono的依赖路径:
- 右键“此电脑” -> “属性” -> “高级系统设置” -> “环境变量”。
- 在“系统变量”区域,点击“新建”,变量名填
LIB,变量值填所有需要的Mono依赖路径(用分号分隔):C:\Program Files (x86)\Mono\lib\atk\;C:\Program Files (x86)\Mono\lib\glade\;C:\Program Files (x86)\Mono\lib\gtk-sharp-2.0\ - 重启VS2017,MSBuild会自动从
LIB变量中查找引用,无需手动在项目中设置。
4. 使用官方构建脚本替代手动VS操作
其实官方文档中提到的构建流程更推荐用脚本自动处理,避免手动配置的麻烦:
- 打开PowerShell,导航到MonoDevelop的源码根目录。
- 运行官方的构建脚本:
这个脚本会自动配置所有依赖路径、下载缺失的组件,并且直接构建整个解决方案,比手动在VS中操作更可靠,也不会出现批量引用问题。.\build.ps1
额外注意事项
- 确保你安装的Mono版本和MonoDevelop源码的要求版本匹配,版本不兼容也会导致引用未解析。
- 清理VS的缓存:删除解决方案根目录下的
.vs文件夹,然后重新加载解决方案,避免旧缓存干扰。
内容的提问来源于stack exchange,提问作者Kolli Kott
相关产品推荐
相关产品推荐

