2008-10-03 8 views
6

¿Alguien tiene un buen recurso en dlls y cómo se usan/generan en Visual Studio? Algunas preguntas que estoy bastante nebuloso en concreto son:Entender dlls y cómo funcionan en Visual Studio

  • archivos de actualización Cómo funcionan
  • Cómo DLL se generan números de versión
  • La diferencia entre añadir una referencia a proyecto contra la navegación por el archivo DLL específica

Cualquier otro consejo es bienvenido también.

Respuesta

5

Véase la pregunta sobre DLL information para algunos antecedentes.

números de versión de DLL no administrados se almacenan en el archivo rc de la DLL, mismas que para un exe. Para archivos DLL administrados Creo que utiliza el atributo AssemblyFileInfo, por lo general en AssemblyInfo.cs para un proyecto de Visual Studio generada:

[assembly: AssemblyFileVersion("1.0.0.0")] 

Si se agrega la referencia de proyecto, entonces VS será capaz de copiar el sabor correcto (debug/release) del conjunto referenciado a su directorio de salida. También puede usar esta información para agregar implícitamente una dependencia entre los proyectos para que luego se construya en el orden correcto.

10

de

El término general para un .NET DLL es un ensamblado de .NET DLL. Son una sola unidad atómica de implementación y consisten en uno o más "módulos" de CLR (para la mayoría de los desarrolladores, generalmente solo uno, a menos que combinen la salida del compilador de dos o más idiomas, por ejemplo). Los ensamblados contienen tanto el código CIL como los metadatos CLR, como el manifiesto de ensamblaje.

.Refresh Archivos

archivos .Refresh son simplemente archivos de texto que le indican donde VS para comprobar si hay nuevas construcciones de DLL que se hace referencia. Se usan en proyectos web basados ​​en archivos donde no hay un archivo de proyecto para almacenar esta información.

números de versión

números de versión de ensamblado .NET se generan por una asamblea scoped AssemblyVersion atributo que se encuentra normalmente en un archivo de origen denominado 'AssemblyInfo.cs' (que se encuentra bajo una carpeta de proyecto llamado 'Propiedades' VS2005 en adelante). Los números de versión se componen de major.minor.build.revision, por ejemplo -

[assembly: AssemblyVersion ("1.0.0.0")]

AssemblyVersion se utiliza como parte de la identidad de un conjunto (es decir, en su fuerte nombre) y juega un papel importante en el proceso de enlace y durante las decisiones de política de la versión.

Por ejemplo Si tuviera dos conjuntos del mismo nombre en el GAC entonces el atributo AssemblyVersion diferenciaría ellos para los fines de la carga de una versión específica del conjunto.

número AssemblyVersion puede ser fijada y se incrementa de forma manual o se puede permitir que el compilador para generar los números de compilación y de revisión para usted especificando:

[assembly: AssemblyVersion ("1.0.. * ")] - genera construir y revisión número
[assembly: AssemblyVersion (" 1.0.0 * ")] - genera número de revisión

Si el atributo AssemblyVersion no está presente, entonces la versión predeterminada número a '0,0. 0.0' .

el valor del atributo AssemblyVersion se convierte en parte del manifiesto de una asamblea, el valor del atributo AssemblyFileVersion no.

el atributo AssemblyFileVersion se utiliza para incrustar una versión del archivo Win32 en el archivo DLL. Si esto no es presente, entonces se usa AssemblyVersion. No tiene ninguna relación con la forma en que .NET sembly loader/resolver elige qué versión de un ensamblaje cargar.

proyecto hace referencia frente a su búsqueda de DLL

Si va a añadir referencia a un proyecto que significa que el proyecto de referencia será parte de su solución. Esto simplifica la depuración al poder ingresar directamente al código de su proyecto al que se hace referencia. Si solo agrega una referencia dll, entonces no tiene los beneficios de que el proyecto forme parte de la solución y pueda ingresar al código dentro de la solución.

Cuestiones relacionadas