2009-02-05 24 views
12

Cambié el nombre de mi proyecto de MyProjectName a MyNewProjectName. Hice un hallazgo completo/reemplazo en la solución y también cambié el proyecto de prueba. En Default.aspx.cs consigo un InvalidOpterationException conASP.NET MVC Namespace cambio de nombre

"El nombre del controlador 'Home' es ambiguo entre los siguientes tipos: MyNewProjectName.Controllers.HomeController MyProjectName.Controllers.HomeController."

¿Cómo puedo arreglar eso? Gracias

Respuesta

30

¿Has intentado reconstruir (haz clic derecho en el proyecto y selecciona "Reconstruir")? También verifique el contenedor para asegurarse de que solo el ensamblado con el nuevo nombre esté allí. Además, verifique las propiedades del proyecto para verificar que el nombre del ensamblado se haya generado. Si no está seguro de cuál es el nombre del conjunto de salida, elimine todos los dlls del contenedor y vuelva a generarlos.

+1

Hice una reconstrucción e incluso una limpieza. Hice una búsqueda de archivos de Windows y, al parecer, VS no borró todo. –

+1

Esto es molesto - Acabo de tener el mismo problema. Qué PITA. ¿Qué se supone que está "limpio" haciendo? –

+1

Supongo que eliminó los archivos con el nombre del proyecto , no todos los dlls. –

8

Debe verificar su carpeta/bin en su proyecto MVC Web, y eliminar todo allí y hacer una nueva compilación, o eliminar la DLL anterior (MyProjectName.dll).

El tiempo de ejecución ASP.Net MVC utiliza la reflexión para determinar a qué controlador debe pasar una solicitud en función de la información de enrutamiento, y encuentra dos Controladores que coinciden con los criterios (tienen el mismo nombre) y cada uno está en una montaje diferente Es por eso que obtienes la excepción.

Haciendo un Limpiar parece que no elimina la carpeta bin. Por lo tanto, debe eliminar el archivo manualmente.

+1

Son los conjuntos antiguos en el contenedor. Buena llamada. +1 –

+1

Gracias ... nada enseña mejor que la experiencia duramente ganada. –

2

Haga doble clic o haga clic derecho en MyProject y ábralo. En la configuración de la aplicación, cambie el nombre del ensamblado y el espacio de nombres raíz para que coincida con su nombre de proyecto renombrado.

0

haga clic derecho en el proyecto, elegir la opción "Abrir carpeta en el Explorador de Windows.

Eliminar los 'objetos' en OLDPROJECTNAME/bin y/obj

5

En cuanto a mí que tenía referencia en web.config la carpeta Ver, una vez que se cambió todo funcionó bien!

+1

Este fue mi problema. Cambié el Ensamblaje y el Espacio de nombres para mi proyecto y no pude cargar una página. La actualización de la entrada del espacio de nombres en las vistas web.config era la pieza que se necesitaba. ¡Gracias! –