2009-02-05 3 views
12

Ich habe mein Projekt von MyProjectName zu MyNewProjectName umbenannt. Ich habe einen kompletten Fund/Ersatz für die Lösung gemacht und auch das Testprojekt geändert. In Default.aspx.cs ich eine InvalidOpterationException mitASP.NET MVC-Namespace umbenennen

bekommen "Der Controller Name 'Home' ist nicht eindeutig zwischen den folgenden Typen:. MyNewProjectName.Controllers.HomeController MyProjectName.Controllers.HomeController"

Wie behebe ich das? Danke

Antwort

30

Haben Sie versucht, neu zu erstellen (Rechtsklick auf Projekt, und wählen Sie "Rebuild")? Überprüfen Sie auch den Behälter, um sicherzustellen, dass nur die Baugruppe mit dem neuen Namen vorhanden ist. Überprüfen Sie außerdem die Projekteigenschaften, um sicherzustellen, dass der Name der Baugruppe ausgegeben wird. Wenn Sie nicht sicher sind, wie der Name der ausgegebenen Assembly lautet, löschen Sie alle DLLs aus dem Bin und erstellen Sie sie neu.

+1

Ich habe eine Neuerstellung und sogar eine saubere. Ich habe eine Windows-Datei suchen und offenbar VS nicht alles klar gemacht. –

+1

Das ist nervig - ich hatte gerade Das gleiche Problem Was für eine PITA Was soll "sauber" machen? –

+1

Ich denke, es hat Dateien mit dem Projektnamen entfernt nicht alle dlls. –

8

Sie müssen Ihren/bin-Ordner in Ihrem MVC-Webprojekt überprüfen und entweder alles darin löschen und einen neuen Build erstellen oder die alte DLL (MyProjectName.dll) löschen.

Die ASP.Net MVC-Laufzeit verwendet eine Reflektion, um basierend auf den Routinginformationen zu ermitteln, an welchen Controller eine Anforderung übergeben werden muss. Es werden zwei Controller gefunden, die den Kriterien entsprechen (denselben Namen haben) unterschiedliche Montage. Deshalb erhalten Sie die Ausnahme.

Doing a Sauber scheint nicht den Ordner bin zu löschen. Sie müssen die Datei also manuell löschen.

+1

Es sind die alten Baugruppen in der Tonne. Guter Ruf. +1 –

+1

Danke .. nichts lehrt besser als hart verdiente Erfahrung .. –

2

Doppelklicken Sie oder klicken Sie mit der rechten Maustaste auf MyProject und öffnen Sie. Ändern Sie in den Anwendungseinstellungen den Assemblynamen und den Stammnamespace so, dass sie mit dem umbenannten Projektnamen übereinstimmen.

0

Rechtsklick auf das Projekt, wählen Sie „Ordner öffnen in Windows Explorer.

Löschen Sie die "OLDPROJECTNAME" Objekte in/bin und/obj

5

Was mich ich in web.config Bezug hatte von der View-Ordner, sobald es geändert wurde, hat alles gut funktioniert!

+1

Das war mein Problem. Ich habe den Assembly- und Namespace für mein Projekt geändert und konnte keine Seite laden. Das Aktualisieren des Namespace-Eintrags in der Views web.config war das Stück, das benötigt wurde. Vielen Dank! –