2010-08-23 13 views
7

Estoy usando w7, 64bit y vs.net 2010.Visual Studio 2010 "Agregar referencia" está copiando dll al directorio bin?

Estoy agregando una referencia a un componente que está dentro de mi cuadro de diálogo 'agregar referencias'. El componente es un dll de terceros.

Históricamente, en w7 32 bits agregaría una línea en mi web.config (dentro de la etiqueta de ensamblajes) que hace referencia a esta dll y no copiaría la dll en el directorio bin.

Sin embargo, en 64bit w7, la dll se copia en el directorio bin y el web.config no se actualiza en absoluto.

¿Por qué se copia el dll en el directorio bin? gracias

Solución: (Actualizado) Estos mensajes me dieron las pistas que necesitaba.

VS.NET copiará el dll al directorio bin si su sistema no puede encontrar el dll en el GAC. Ensambla en el GAC (registrado en su estación de trabajo) y se puede encontrar mirando el directorio C: \ Windows \ Assembly.

Los componentes enumerados en el diálogo 'agregar referencias' de vsnet 'pueden o no estar en el gac. Debido a que el componente se enumera en el cuadro de diálogo 'Agregar referencias' no implica que esté registrado en su estación de trabajo local. Navegué hasta el directorio de componentes y arrastré los dll's deseados al directorio C: \ Windows \ Assembly. Cerré y volví a abrir vs.net y busqué en el (los) mismo (s) archivo (s) y hice clic en agregar referencia.

** Esto añade la referencia de ensamblado a mi web.config (y también no copió el archivo DLL a mi directorio bin sitio web) ****

Respuesta

5

Obtiene copias en el directorio bin para que el ejecutable pueda encontrarlo. No lo encontrará de otra manera, a menos que el dll esté instalado en el GAC.

+2

El dll está dentro del gac (como se muestra en el cuadro de diálogo 'agregar referencias') así que esperaría que no se copie el dll – David

+2

+1, esta respuesta es correcta. El cuadro de diálogo Agregar referencia tiene * nada * que ver con el GAC. Solo enumera ensamblajes de referencia registrados, nunca lista nada de los directorios de GAC. –

11

En la referencia, hay una Copy Local propiedad (en la ventana Propiedades), que determina si el ensamblaje debe copiarse en el directorio de salida.

cuanto a por qué no podría haber importado de otras referencias, MSDN dice:

Si implementa/copiar una aplicación que contiene una referencia a un componente personalizado que se registra en el GAC, el componente no se debe desplegar/copiar con la aplicación, independientemente de Copiar configuración local.

+0

Dentro de vs.net 2010, este es un sitio web (y no una aplicación web) por lo que no hay una carpeta de referencias dentro de la solución. Acabo de tener un directorio bin y si miro las propiedades del dll, solo tengo las propiedades "auto-refresh path", "file name", y "Full Path". No tengo la propiedad "copiar local". – David

+0

@David Si agrega la entrada '' al archivo web.config y elimina el archivo DLL, ¿su sitio funciona correctamente? – bdukes

1

Además de las respuestas anteriores: Creo que Visual Studio determina si la propiedad Copy Local se establece en true en función del hecho de que la DLL no está en el GAC de su computadora.
Impide que el VS copie las DLL nativas de .NET, por lo que debería copiar de forma predeterminada las DLL "personalizadas".

+0

Este es un "sitio web" de asp.net, no una "aplicación web" y no puedo cambiar la propiedad local de copia. Además, el componente está dentro del gac, por lo que solo debería agregar una referencia al mismo dentro del web.config. No estoy seguro de por qué, ¿esto estaría relacionado con esta estación de trabajo w7 de 64 bits? – David

+0

¿Estás seguro de que este es un "sitio web"? Solo estoy leyendo que un sitio web no tiene una carpeta Bin ... (http://bit.ly/aOlnfD). Esto es extraño porque puedo cambiar ese valor Copy Local. Y suena raro que el comportamiento sea diferente de 32 bits y 64 bits. Puede ser porque el archivo DLL no está compilado en 64 bits y el compilador realiza algo en el archivo DLL copiado (¿es exactamente el mismo que en el GAC?). Pero suena extraño. –

Cuestiones relacionadas