Esta es el arreglo más completa que encomtrarás aportar, pero estúdiala pausadamente y valora si es compatible a tu trabajo.
Solución:
Vale la pena señalar que otra forma de obtener tales advertencias es simplemente configurar un proyecto en Visual Studio para que se haga referencia a sí mismo: Referencias -> Solución -> etc. etc. (cómo descubrí esta gema se deja como ejercicio para el lector … )
Visual Studio cumplirá felizmente, solo para arrojar un muro de advertencias del tipo descrito por OP durante la compilación, lo cual es de esperar (después de reflexionar) ya que cada clase, etc., se define dos veces.
El único momento en que ocurren conflictos es cuando dos clases dependientes incluyen la misma clase. Hay dos soluciones:
-
Deshabilite la advertencia en las clases que causan CS0436:
#pragma warning disable 0436
-
Tenga una instancia separada de la clase, con un nombre único en cada proyecto de cliente (no deseable desde el punto de vista del mantenimiento).
EDITAR: También hay una solución: haga lo que Mark sugiere a continuación y marque las clases duplicadas internal
.
Tenía una aplicación web que convertí de ASP.NET 3.5 a 4.5 cuando me mudé a VS2015. Empecé a ver esto como una advertencia, pero la solución aún se compilaría. No había referencias circulares, y limpiando la solución y eliminando el bin
y obj
las carpetas no ayudaron.
Resulta que VS2015 no estaba satisfecho con algunas de mis clases en la carpeta App_Code. Las clases aquí tenían el mismo espacio de nombres que el resto de las páginas web en la carpeta principal. Una vez que moví estas clases fuera de la carpeta App_Code y al nivel superior de la aplicación web, las advertencias desaparecieron.
valoraciones y comentarios
Si te gustó nuestro trabajo, eres capaz de dejar una división acerca de qué te ha impresionado de esta reseña.