Visual Studio中移动文件至其他项目后IntelliSense命名空间发现失效
你把ViewModels从主ASP.NET MVC项目Yogabandy2017迁移到Yogabandy2017.Models类库的Viewmodels文件夹,更新完命名空间和视图引用后,VS的智能提示找不到命名空间了?这种项目结构调整后的IntelliSense异常挺常见的,试试下面这些方法:
先确认主项目的类库引用是否到位
右键主MVC项目Yogabandy2017→ 「添加」→ 「项目引用」,确保Yogabandy2017.Models已经被勾选。如果主项目根本没引用这个类库,IntelliSense肯定找不到它的命名空间,这是最容易忽略的点。清理重建+清除VS缓存
VS的缓存经常会拖后腿,按这个顺序操作:- 点击顶部菜单「生成」→ 「清理解决方案」
- 接着点击「生成」→ 「重建解决方案」
- 关闭VS,找到解决方案根目录下的
.vs隐藏文件夹(需要先开启「显示隐藏项目」),删除它后重新打开项目。这一步能彻底清除VS的本地缓存,解决很多奇怪的识别问题。
检查命名空间的大小写和拼写
打开Yogabandy2017.Models里的任意一个ViewModel文件,确认命名空间是Yogabandy2017.Models.Viewmodels(注意你文件夹是Viewmodels,如果视图里批量替换成了ViewModels(大写S),就会匹配失败——VS对命名空间的大小写是严格敏感的)。手动测试+全局注册命名空间
先在某个视图里手动输入@using Yogabandy2017.Models.Viewmodels;,看看IntelliSense能不能自动补全这个命名空间:- 如果手动输入后能识别,说明批量替换可能有遗漏或者格式问题,得检查视图里的命名空间引用是否都正确;
- 如果还是不行,试试在主MVC项目根目录的
web.config(不是Views文件夹里的那个)里全局注册这个命名空间:
找到<namespaces>节点,添加一行:
保存后重启VS,IntelliSense应该能全局识别这个命名空间了。<add namespace="Yogabandy2017.Models.Viewmodels" />
重置IntelliSense缓存
按下快捷键Ctrl+Shift+R(或者在菜单里找「编辑」→ 「IntelliSense」→ 「刷新本地缓存」),强制VS重新加载所有项目的元数据,有时候这一步就能快速修复智能提示问题。检查类库项目的输出类型
右键Yogabandy2017.Models项目 → 「属性」→ 「应用程序」,确认「输出类型」是「类库」。如果不小心改成了其他类型(比如控制台应用),也会导致IntelliSense无法正确识别它的命名空间。
内容的提问来源于stack exchange,提问作者chuckd

