Visual Studio MVC解决方案重命名后编译成功运行报错求助
解决Visual Studio MVC解决方案重命名后运行报错的问题
我之前也踩过MVC项目重命名的坑——编译通了但一运行就报错,多半是有些隐藏的配置、缓存或者零散的引用没更新彻底。你可以按下面的步骤逐一排查:
检查配置文件里的旧命名空间/程序集引用
别只看根目录的Web.config,一定要去Views文件夹下的Web.config里仔细找:- 看看
<compilation>节点下的assembly引用有没有残留TestSolution; <pages>节点的<namespaces>里,会不会有<add namespace="TestSolution.Models" />这类旧命名空间,要改成RealEstateErp.Models;- 顺带检查下
connectionStrings或者其他自定义配置项里有没有硬编码的旧名字。
- 看看
彻底清理缓存和生成文件
有时候VS的缓存会“记住”旧名字,手动清一遍更靠谱:- 右键解决方案,依次执行
清理解决方案→生成解决方案; - 手动删除项目目录下的
bin、obj文件夹,还有解决方案根目录的.vs隐藏文件夹(要先显示系统隐藏文件); - 重启Visual Studio,重新生成项目后再尝试运行。
- 右键解决方案,依次执行
确认项目属性和程序集信息
右键项目打开属性面板:- 在
应用程序标签页,确保程序集名称和默认命名空间都改成了RealEstateErp; - 打开
Properties文件夹下的AssemblyInfo.cs,把里面的[assembly: AssemblyName("TestSolution")]改成新名称,顺带可以把Title、Product这些相关属性也统一更新。
- 在
排查视图文件的指令引用
有些视图可能在顶部写了硬编码的旧命名空间:- 比如
@inherits System.Web.Mvc.WebViewPage<TestSolution.Models.YourModel>,要把TestSolution替换成RealEstateErp; - 建议用VS的查找全部功能(快捷键Ctrl+Shift+F),搜索整个解决方案里的
TestSolution,注意勾选“区分大小写”,有时候大小写不一致会导致搜索遗漏。
- 比如
检查IIS Express站点配置
如果用IIS Express运行,旧的站点配置可能还残留:- 右键项目→
属性→Web标签页,点击创建虚拟目录刷新配置; - 或者手动删除IIS Express的配置文件:路径是
C:\Users\<你的用户名>\Documents\IISExpress\config\applicationhost.config,找到旧的TestSolution站点节点删掉,重启VS再运行。
- 右键项目→
如果做完这些还是报错,建议仔细看一下报错的具体堆栈信息,它会指向具体的文件或者命名空间,能帮你更快定位残留的旧引用。
内容的提问来源于stack exchange,提问作者shami sheikh
相关产品推荐
相关产品推荐

