2010-06-08 9 views
10

Estoy trabajando en un proyecto de C# 4.0 en VS2010 y necesitaba utilizar algunas DLL anteriores que contengan controles creados en C# 3.5 en VS2008. Cuando por primera vez añadir los archivos DLL de las referencias, yo era capaz de ver el espacio de nombres a través de IntelliSense y crear una instancia de uno de los controles, pero cuando voy a construir, me da el siguiente error:DLL de referencia que no se cargan en Visual Studio 2010

The type or namespace name 'BCA' could not be found (are you missing a using directive or an assembly reference?) 

E I do ya tiene una directiva using para ese espacio de nombres, que ahora está subrayado en rojo, mostrando que VS no puede encontrarlo. Y ahora, intellisense no captará ese espacio de nombre en absoluto.

Incluso intenté agregar los controles a la caja de herramientas (que funcionó) pero luego cuando los arrastro a la GUI, dice que no puede encontrar la referencia de la DLL, aunque obviamente sabe dónde está.

Incluso intenté cambiar el marco de destino a 3.5, pero aún con los mismos resultados.

¿Alguna idea de por qué esto podría estar pasando?

Editar - He notado que en los argumentos csc.exe que VS produce, no tiene ninguna entrada/referencia para las DLL que estoy tratando de usar. Cuando creo el mismo proyecto básico en VS2008, esas entradas existen. Además, puedo hacer referencia con éxito a las DLL en un proyecto de DLL en VS2010 ... parece que solo se trata de proyectos de WinForms que no funcionan.

+0

Esto puede ser una pregunta obvia, pero los archivos DLL definitivamente aún están en el mismo lugar en el disco (o en el GAC) que cuando originalmente hizo referencia a ellos? –

+0

Otra posible obvia: ¿este tipo de ensamblaje se ha actualizado con él? En ese caso, tal vez el archivo .refresh sigue apuntando a un .DLL obsoleto. –

+0

sí, definitivamente no se han movido. Y nada ha sido actualizado. –

Respuesta

21

Resulta que era algo que ver con VS2010 por defecto al .NET 4 perfil de cliente, tan pronto como lo cambié al perfil normal que construyó bien. Hay un día perdido ...

+2

Gracias a su publicación solo perdí unas horas de trabajo ... – Peter

+0

Gracias, me encontré con el mismo problema y su solución funcionó para mí ... – Mike

2

ver el marco de destino .. en mi proyecto, fue de 4,0 perfil de cliente, e el DLL de referencia fue de 4.0

0

Probé Generar-> Limpiar solución y luego se podría agregar la referencia .

+0

Entonces, ¿no tiene que ver con el perfil? –

0

que solía tener un problema similar, pero los perfiles no eran el problema, por lo que el problema era que mi biblioteca de clases utilizan un paquete especial que tiene NuGet Dependencia ... así que instalar el paquete de la dependencia en el proyecto de destino ¡y agregó la referencia del proyecto y funciona!

Pero no estoy seguro de si hay una mejor solución para este problema ??? para mí, VS debe ser lo suficientemente inteligente como para llevar esos dlls junto con las referencias. (Ya he verificado que "Copiar local" está configurado en True)

Cuestiones relacionadas