Fehler beim Umbenennen des ASP.NET MVC-Projekts

78

Ich habe ein vorheriges Projekt kopiert und umbenannt. Einmal hatte ich alle Namensräume erfolgreich umbenannt und es wurde richtig gebaut. Beim Ausführen der Anwendung wurde folgende Fehlermeldung angezeigt:

The following errors occurred while attempting to load the app.
- The OwinStartup attribute discovered in assembly 'User Manager Interface' referencing    startup type 'User_Manager_Interface.Startup' conflicts with the attribute in assembly   'Service Monitor Web Interface' referencing startup type  'Service_Monitor_Web_Interface.Startup' because they have the same FriendlyName ''. Remove or   rename one of the attributes, or reference the desired type directly.
To disable OWIN startup discovery, add the appSetting owin:AutomaticAppStartup with a value of "false" in your web.config.
To specify the OWIN startup Assembly, Class, or Method, add the appSetting owin:AppStartup with the fully qualified startup class or configuration method name in your web.config.

Ich habe herausgefunden, dass der Fehler verschwindet, wenn ich die erste Zeile unten auskommentiere.

//[assembly: OwinStartupAttribute(typeof(Service_Monitor_Web_Interface.Startup))]
namespace Service_Monitor_Web_Interface
{
public partial class Startup
{
    public void Configuration(IAppBuilder app)
    {
        ConfigureAuth(app);
    }
}
}

Ich habe meine Lösung von User_Manager_Interface in Service_Monitor_Web_Interface umbenannt.

Ich kann anscheinend keine Orte mit dem alten Namen finden, wie hoch der Fehler ist, in dem er erwähnt wird.

Zapnologica
quelle
Ich habe das gleiche Problem. Irgendwelche Antworten oder Glück, die Lösung zu finden?
Chris Story
Ich habe gerade das Projekt gelöscht und neu gestartet. Benennen Sie nur die Klassen und den Namespace um.
Zapnologica

Antworten:

170

Ich hatte dieses Problem bereits einige Male, daher werde ich das Verfahren, das ich befolge, auch als Erinnerung für mich selbst aufschreiben:

  1. Ersetzen Sie den gesamten alten Lösungsnamen durch den neuen.
  2. Navigieren Sie unter jedem Projekt zu Eigenschaften und ändern Sie die Felder Baugruppenname und Standard-Namespace in neuen Lösungsnamen.
  3. Gehen Sie zum Lösungsordner und benennen Sie alle Projektordner mit dem neuen Lösungsnamen um.
  4. Entfernen Sie alle Dateien unter den Ordnern bin und obj .
  5. Die Lösung kann keine Projekte laden. Entfernen Sie alle Projekte und fügen Sie sie erneut hinzu.
  6. Erstellen Sie das Projekt neu.
Ferit Buyukkececi
quelle
86
Vielen Dank. Das Löschen des Inhalts des Ordners "bin" war alles, was ich brauchte.
Nicolas
2
Ich habe die spezifischen DLLs gelöscht, die auf das ursprüngliche Projekt und Boom! zurück im Geschäft. Vielen Dank!
Dunwan
1
Es folgten mehrere Umbenennungen von How-Tos und dies war diejenige, die schließlich funktionierte. Vielen Dank
Madvora
7
Wenn Ihre Website auf Azure gehostet wird, müssen Sie eine Neuveröffentlichung durchführen, um Dateien unter den Ordnern bin und obj online zu entfernen: stackoverflow.com/questions/17476525/…
Amadeusz Wieczorek
Ich habe das Problem behoben, indem ich die Startup-Klassendatei ausgewählt und die Build-Aktion unter "Kompilieren" in "Inhalt" geändert habe.
Aki
31

Dieses Problem tritt auf, wenn sich zwei Assemblys im selben bin-Ordner befinden, die eine OwinStartup-Klasse enthalten. Normalerweise sollten Sie nicht zwei OwinStartup-Klassen für dieselbe Webanwendung haben.

Sie können dieses Problem lösen, indem Sie Ihren Bin-Ordner überprüfen. Wenn nach dem Umbenennen eine Assembly mit dem alten Namen im Ordner bin verbleibt, wird diese Fehlermeldung angezeigt. Um es zu lösen, löschen Sie alles aus dem Ordner bin.

Milen Kovachev
quelle
12

Ich hatte das gleiche Problem, nachdem ich die Baugruppe der Lösung umbenannt hatte.

Ich habe das Problem gelöst, indem ich sichergestellt habe, dass OwinStartupAttritbute auf meinen neuen Assemblynamen verweist.

Als Nächstes löschen Sie die alte Assembly im Ordner bin.

Yaobin Dann
quelle
8

Ich habe meine Lösung nicht umbenannt, bin aber auf dieses Problem gestoßen. Ich konnte nirgendwo eine Lösung dafür finden. Ich hatte 2 separate Projekte mit einer Owin-Startklasse auf demselben Server. Ich habe einfach jedem einen anderen "Freundlichen Namen" gegeben, wie in der Ausnahmemeldung vorgeschlagen, und es hat es gelöst. Ich habe einen guten Artikel dazu gefunden:

Owin Startup Class

Um es umzubenennen, müssen Sie lediglich eine Zeichenfolge zum OwinStartup hinzufügen.

[Assembly: OwinStartup ("ProductionConfiguration", typeof (StartupDemo.ProductionStartup2))]

aoakeson
quelle
3

Fügen Sie beim Webkonfigurations-Appsetting das folgende Tag hinzu

<appSettings>
   <add key="owin:AutomaticAppStartup" value="false" />   
</appSettings>
Amit Jaiswal
quelle
1

Ich habe zwei ASP .NET MVC 5-Projekte, Project1 und Project2.

Das Problem ist, dass sich die DLL von zwei Projekten im selben bin-Ordner befindet und beide Owin-Middleware verwenden. Dies bedeutet, dass Project1.dll und Project2.dll im selben bin-Ordner von Project2 vorhanden sind.

Da ich in jedem Projekt nur einen davon benötige, entferne ich einfach die nicht verwendete Project1.dll aus dem Project2-Bin-Ordner.

Chun Lin
quelle