110 votes

Erreur ASP.Net: "Le type 'foo' existe à la fois dans" temp1.dll "et" temp2.dll "

Lors de l'exécution d'un projet d'application Web, une page peut échouer avec une erreur CS0433 à des moments apparemment aléatoires: le type existe dans plusieurs DLL. Les DLL sont toutes des DLL générées résidant dans le répertoire "Fichiers temporaires ASP.NET".

136voto

Ben Fulton Points 1915

Ajouter le lot="false" attribut de la "compilation" des éléments du web.fichier de configuration.

Ce problème se produit en raison de la façon dont ASP.NET 2.0 utilise les références d'application et la structure du dossier de la demande pour compiler l'application. Si le lot de la propriété de l'élément dans le web.fichier de configuration de l'application est défini à true, ASP.NET 2.0 compile chaque dossier dans l'application dans une autre assemblée.

http://www.sellsbrothers.com/news/showTopic.aspx?ixTopic=1995

http://support.microsoft.com/kb/919284

22voto

Lilja Points 73

Cela peut se produire si vous placez .cs fichiers dans App_Code et changé leur action de construire à compiler dans un Projet d'Application Web.

L'action de construire pour la .cs fichiers dans App_Code comme Contenu ou de modifier le nom de App_Code à autre chose. J'ai changé le nom depuis intellisense ne sera pas corrigé .cs fichiers marqués comme contenu.

Plus d'infos au http://vishaljoshi.blogspot.se/2009/07/appcode-folder-doesnt-work-with-web.html

11voto

Amrinder Singh Points 81

Une des raisons possibles de cette erreur est qu'il y a 2 pages aspx qui portent le même nom dans leur ligne inherits= dans la ligne <@page language=......inherits=> .

Changer le nom inherits= résout l'erreur.

4voto

Mike Powell Points 2913

Comme un autre point de données, j'ai juste eu ce problème , sans aucune preuve de références circulaires, comme décrit dans les liens en Ben la réponse. De la création de mon projet de site web serait un échec avec quelques-uns de ces erreurs et de configurer compilation batch="false" fixe, mais je ne voulais pas aller dans cette voie, car c'est une grand-ish de production de site web.

Cette solution a été dans un sous-dossier de mon D:\svn dossier, que j'avais mappé à S:. Quand j'ai ouvert la solution de S:, ces erreurs se sont produites, mais si je suis allé directement à D:\svn et ouvert de la solution, pas d'erreurs.

J'ai aussi remarqué que, malgré compilation batch="true" dans mon web.config, lors de l'ouverture de la solution à partir de la mappé S: lecteur tous mes .ascx les fichiers compilés dans leurs propres assemblées. Si je l'ouvre à partir de l'emplacement physique, l' .ascx les fichiers compilés dans leurs dossiers respectifs " assemblées (ce qui, batch="true" est censé fonctionner).

Étrange.

4voto

Ravi Garg Points 21

Cette erreur est due à des conflits entre nom de la classe de talon de forme et wsdl web (code-behind fichier .cs) ayant le même nom de classe c'est-à-dire

Page ASPX : tableau de bord classe : classe partiacl tableau de bord

AppCode/APIServices.cs : partial public class Dashboard

Erreur est reproductible uniquement sur publier le site Web mais génération et débogage n’a pas informé de toute erreur.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X