2009-02-05 122 views
12

我将我的项目从MyProjectName重命名为MyNewProjectName。我在解决方案上做了一个完整的查找/替换,并更改了测试项目。在Default.aspx.cs我得到ASP.NET MVC命名空间重命名

的InvalidOpterationException“控制器名‘家’是以下类型之间的暧昧: MyNewProjectName.Controllers.HomeController MyProjectName.Controllers.HomeController”

我该如何解决?谢谢

回答

30

你有没有尝试重建(右键单击项目,并选择“重建”)?同时检查垃圾箱以确保只有具有新名称的部件在那里。另外,再次检查项目属性以验证组件的名称被输出。如果您不确定输出程序集的名称是什么,请从bin中删除所有dll并重建。

+1

我做了一个重建,甚至是一个干净的我做了一个窗口文件搜索,显然,VS并没有清除所有的东西 – 2009-02-05 18:20:01

+1

这是烦人的 - 我刚刚同样的问题什么是PITA什么是“干净”应该做什么??? – 2009-04-10 16:06:19

+1

我想它删除了带有项目名称的文件,不是所有的DLL。 – 2009-05-06 20:00:00

8

您需要在您的MVC Web项目中检查您的/ bin文件夹,并且删除那里的所有内容并执行新的构建,或删除旧的DLL(MyProjectName.dll)。

ASP.Net MVC运行时使用反射来确定哪个控制器必须根据路由信息传递一个请求,并且它找到两个符合标准(具有相同名称)的控制器,并且每个控制器都处于不同的组装。这就是为什么你会得到例外。

做一个干净似乎没有清除bin文件夹。所以你必须手动删除文件。

2

双击或右键单击MyProject并打开。在应用程序设置中更改程序集名称和根名称空间以匹配重命名的项目名称。

0

右键点击该项目,选择“打开文件夹在Windows资源管理器。

删除‘位于/ bin OLDPROJECTNAME’对象和/ OBJ

5

至于我自己,我在web.config中的引用了查看文件夹,一旦它被改变了一切工作正常!