web-dev-qa-db-fra.com

Erreur lors du renommage du projet ASP.NET MVC

J'ai copié un projet précédent et l'ai renommé. Une fois, j'ai renommé avec succès tous les espaces de noms et la construction est correcte. J'ai eu l'erreur suivante quand j'ai exécuté l'application:

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.

J'ai compris que si je commentais la première ligne ci-dessous, l'erreur disparaîtrait.

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

J'ai renommé ma solution User_Manager_Interface en Service_Monitor_Web_Interface.

Je n'arrive pas à trouver des endroits avec l'ancien nom, quelle que soit l'erreur qu'il mentionne.

75
Zapnologica

J'ai déjà eu ce problème à quelques reprises, je vais donc écrire la procédure que je suis aussi pour me rappeler:

  1. Remplacez tous les anciens noms de solutions par les nouveaux.
  2. Accédez à Propriétés sous chaque projet et modifiez les champs Nom de l'ensemble et Espace de noms par défaut en un nouveau nom de solution.
  3. Accédez au dossier de solution et renommez tous les dossiers de projet avec le nouveau nom de solution.
  4. Supprimez tous les fichiers sous les dossiers bin et obj.
  5. La solution ne pourra pas charger les projets. Supprimez tous les projets et ajoutez-les à nouveau.
  6. Reconstruisez le projet.
166

Ce problème se produira si vous avez deux assemblys dans le même dossier bin qui contiennent une classe OwinStartup. Normalement, vous ne devriez pas avoir deux classes OwinStartup pour la même application Web.

Vous pouvez résoudre ce problème en inspectant votre dossier bin. Si, après avoir renommé, un ensemble avec l'ancien nom est resté dans le dossier bin, vous obtiendrez cette erreur. Pour le résoudre, supprimez tout du dossier bin.

30
Milen Kovachev

Je rencontrais le même problème après avoir renommé l’Assemblée de la solution.

J'ai résolu le problème en m'assurant que OwinStartupAttritbute se réfère à mon nouveau nom d'assembly.

Suivant consiste à supprimer l'ancien assemblage trouvé dans le dossier bin.

12
Yaobin Then

Je n'ai pas renommé ma solution, mais j'ai rencontré ce problème. Je n'ai trouvé aucune solution à ce sujet. J'ai eu 2 projets distincts avec une classe de démarrage owin sur le même serveur. J'ai simplement donné à chacun un "nom convivial" différent, comme suggéré dans le message d'exception, et le problème a été résolu. J'ai trouvé un bon article à ce sujet:

Classe de démarrage Owin

Pour le renommer, tout ce que vous avez à faire est d’ajouter une chaîne dans le OwinStartup comme ceci:

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

8
aoakeson

Ajouter la balise suivante sur la configuration d'applications Web

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

J'ai deux ASP .NET MVC 5 projets, Project1 et Project2.

Le problème est que la DLL de deux projets se trouve dans le même dossier bin et que les deux utilisent le middleware Owin. Cela signifie que Project1.dll et Project2.dll existent dans le même dossier bin de Project2.

Comme je n'ai besoin que d'un seul d'entre eux dans chaque projet, je supprime donc le fichier Project1.dll inutilisé du dossier bin de Project2.

1
ChunLin
0
Cătălin Rădoi