2009-06-29 16 views
26

Tengo 1 DLL en el marco de .NET 3.5 y otro en 2.0. La clase ListBoxItem existe en 2.0 y he vinculado la clase en la DLL 3.5 en el mismo espacio de nombres.El tipo <type> existe en ambas DLL

Cuando intento compilar obtengo un error "existe en ambos". ¿Cómo puedo compilar esto y mantener la misma estructura?

No deseo la referencia del DLL 2.0 a 3.5 para eliminar este problema, quiero mantener estas DLL separadas.

Respuesta

5

Esto no parece una buena idea pase lo que pase, pero cambie los espacios de nombres y califique completamente sus usos.

De lo contrario, ¿por qué no solo hace referencia a un dll?

+0

Si cambio espacios de nombres, estos 2 dlls no se pueden usar en el mismo método porque tienen 2 firmas diferentes. – pedrofernandes

+0

No quiero instancia 2.0 dll en 3.5 dll porque 2.0 dll tiene grandes referencias agregadas y cuando compilo compila mi 3.5, 2.0 dlls más todos los dlls referenciados en 2.0, por lo que puedo tener 15 dlls cuando puedo tener solo 2 dlls im mi carpeta bin. – pedrofernandes

+0

Necesita volver a trabajar el inglés en las últimas dos publicaciones. No tengo idea de lo que estás diciendo. Tal vez solo hacer todo uno dll? –

2

Dividirlos en dos soluciones diferentes, una para .NET 2.0 y otra para .NET 3.5. De lo contrario, ¿cómo sabe .NET cómo cargar uno?

+0

OK lo tengo. Pero cuando creo un proyecto web con estos 2 dlls a los que se hace referencia, aparecen errores. – pedrofernandes

+0

Solutions! = Proyectos. –

+0

Sí, es cierto. me engañó. – pedrofernandes

6

Ésta es una solución pertinente, así, donde puede definir qué tipo de uso en sus usings:

https://stackoverflow.com/a/9194582/178620

no puede utilizar nombres completos cuando se trata de métodos de extensión y

etc.
+0

PUEDE utilizar nombres totalmente calificados para referirse a métodos de extensión, pero solo si los llama directamente, en lugar de como y extensión. –

2

Tema viejo pero quería agregarlo en otra instancia donde ocurrió este problema. Estaba demorando con un proyecto que se convirtió de un sitio web a una aplicación web en Visual Studio 2010. Empecé a obtener el tipo "clase" existe tanto en .../temporal ASP.NET/... yada ... yada ... Yada.

En mi caso, la página anterior usaba una cuadrícula de datos para mostrar una lista de fechas pero el conjunto de datos era una lista de las clases List<MyClass> y el código en .aspx (no el código detrás) usaba la metodología de fundir el elemento de datos para mostrar ...

<%# ((MyClass)Container.DataItem).MyDate %> 

Por alguna razón, MyClass estaba disparando el error de tipo. Después de hacer la búsqueda completa en todo el proyecto de posibles referencias de clases dobles y cosas por el estilo, no encontré nada, así que básicamente decidí ver si me deshice del molde y simplemente voy con el método estándar de obtener el valor del DataItem de la siguiente manera:

<%# DataBinder.Eval(Container.DataItem, "MyDate").ToString()%> 

Y listo ... ya no existe el tipo de error. No estoy seguro de por qué esto haría que el error anterior se manifieste (y si alguien tiene alguna idea, se agradecería), pero el problema se ha ido ...

Espero que esto ayude a alguien ...

de Dave

Cuestiones relacionadas