Trucos Ficheros de dependencias del Setup Wizard

INTRODUCCION

Un fichero de depencias (.DEP) contiene información acerca de los requerimientos en tiempo de ejecución de una aplicación o de un componente; contiene información sobre qué ficheros se necesitan, cómo deben ser registrados y dónde deben ser instalados.

Podemos crear ficheros de dependencias para programas VB, controles ActiveX, documentos ActiveX y otros componentes ActiveX.

Cuando un componente es usado en un proyecto, la información de dependencia del componente se incorpora a la información de dependencia del proyecto. esta información es empleada por el Setup Wizard para determinar qué ficheros deben distribuirse con nuestro proyecto y cómo deben ser instalados.

Todos los ActiveX que vienen con Visual Basic vienen con un fichero de dependencias. Es muy recomendable que generes ficheros de dependencias para tus componentes, especialmente si lo vas a usar en otros proyectos VB.

El Setup Wizard, incluído con las versiones Profesional y Empresarial, nos da la opción de generar automáticamente el fichero de dependencias para nuestro proyecto o componente. Este fichero puede ser generado también usando un editor de texto.


MAS INFORMACION

Un fichero de dependencias es un fichero .INI y se puede leer y escribir empleando las funciones del API GetPrivateProfileString y WritePrivateProfileString.

Algunos conceptos de los ficheros de dependencias :

- Pueden tener múltiples secciones y el orden de las mismas no es significativo.
- Las entradas no distinguen entre mayúsculas y minúsculas.
- Los comentarios se preceden por un punto y coma (;)
- Su nombre es importante y debe coincidir con el del componente que describen. Por ejemplo, un fichero de dependencias llamado MIOCX.DEP debe corresponder a un componente como MIOCX.OCX o MIOCX.DLL.


Cada sección de un fichero .DEP emplea la siguiente sintaxis :


[Nombre del fichero]
Dest =
UsesN =
Register =
Version =
Date =
Time =
ProgramIconTitle =
ProgramIconCmdLine =

Vamos a verlas con más detalle una a una.

Dest

La clave DEST indica el directorio de destino para el componente. Este valor puede ser un path relativo, completo o uno basado en una de las siguientes macros :

  - $(AppPath) :Indica el path que el usuario selección durante la instalación.

  - $(WinSysPath) : Indica el directorio del sistema (\Windows\System o \Windows\System32).

  - $(WinPath) : Indica el directorio \Windows.

  - $(ProgramFiles) : Indica el directorio especificado en HKEY_LOCAL_MACHINE\Software\
Microsoft\Windows\CurrentVersion\ProgramFilesDir.

  - $(CommonFiles) : Indica el directorio especificado en HKEY_LOCAL_MACHINE\Software\
Microsoft\Windows\CurrentVersion\CommonFilesDir.

  - $(CommonFilesSys) : Indica $(CommonFiles)\System en Windows 95 y NT 4.0, o el mismo que $(WinSysPath) bajo NT 3.51.

  - $(MSDAOPath) : La localización guardada en el registro para los componentes DAO.

Por defecto, todos los ficheros dependientes de un componente se grabarán en el mismo directorio que el componente. Si queremos grabar en otro directorio un "hijo" debemos crear una sección para él y especificar en ella un destino distinto.


UsesN

La clave UsesN (siendo N un entero) indica un fichero dependiente del componente. El fichero especificado es necesario para el componente en cuya sección estamos.
En cada sección N debe ser secuencial y comenzar en uno. Por ejemplo :

[MiOCX.OCX]
Dest = $(WinSysPath)
Uses1 = MiDLL.DLL
Uses2 = MiOCX.TXT


En este ejemplo, MiDLL.DLL y MiOCX.TXT son ficheros dependientes para MiOCX.OCX.

NOTA: Si las claves UsesN no están ordenadas secuencialmente o se saltan algún número pueden no ser reconocidas por el Setup Wizard.


Register

Indica cuándo el fichero debe ser registrado y cómo debe serlo.
Los valores válidos son :

  - None : Si se omite el valor el fichero no se registra.

  - $(DllSelfRegister) : El fichero soporta self-registration y self-unregistration a través de un punto de entrada en la DLL.

  - $(ExeSelfRegister) : El fichero es un servidor que soporta self-registration através del parámetro "/RegServer" y self-unregistration mediante el parámetro "/UnRegServer"

  - $(TLBRegister) : El fichero es un fichero .TLB y debe ser registrado.

  - NombreDeFichero : El fichero se registra llamando al Regedit.exe con este nombre de fichero como parámetro.

  - $(Remote) : Usado sólo por Visual Basic para indicar que es un fichero .VBR.


Si omitimos esta clave el fichero no se registra.


Version

(Opcional)

Indica la versión del componente que se necesita. El Setup Wizard puede detectar que un fichero .DEP está desfasado usando esta clave. La versión se especifica en el formato a.b.c.d. Por ejemplo :

Version = 4.50.10.11


Date

(Opcional)

Es el date stamp del componente que se necesita. El Setup Wizard puede detectar que un fichero .DEP está desfasado usando esta clave. Debe estar en formato d/m/yyyy o dd/mm/yyyy. Por ejemplo:

Date = 10/5/1996

          - o -

Date = 04/03/1997


NOTA: Se ignora si se ha especificado un valor para la clave Version.


Time

(Opcional)

Es el time stamp del componente que se necesita. El Setup Wizard puede detectar que un fichero .DEP está desfasado usando esta clave. Debe estar siempre en formato 24 horas
hh:mm:ss. Por ejemplo :

Time = 14:05:32


NOTA: Se ignora si se ha especificado un valor para la clave Version.


ProgramIconTitle y ProgramIconCmdLine

(Opcional)

La clave ProgramIconTitle indica el título del acceso directo (o icono en el Administrador de Programas en Windows NT 3.51) que será creado si se instala el fichero. El valor puede estar o no entre comillas. Por ejemplo :

ProgramIconTitle = Título de mi programa


Si indicamos que debe crearse un acceso directo, debemos informar de la línea de comandos para el mismo especificando un valor para la clave ProgramIconCmdLine.
El path puede contener las macros empleadas en la clave Dest, por ejemplo :

ProgramIconCmdLine = $(AppPath)\Readme.txt


Componentes locales

Algunos componentes pueden tener distintas dependencias basadas en el idioma. Para instalar un componente basado en el idioma debes crear una sección con el nombre del componente seguido por el ID del lenguaje.

Por ejemplo, VBRUN500.DLL tiene una DLL "satélite" para todos los idiomas ( a excepción del inglés) :

[VBRUN500.DLL]
Dest = $(WinSysPath)

[VBRUN500.DLL <000C>] ;000C = ID primario de lenguaje para el Francés
Uses1 = VB5FR.DLL

[VBRUN500.DLL <0007>] ;0007 = ID primario de lenguaje para el Alemán
Uses1 = VB5DE.DLL

En este ejemplo, si se instala VBRUN500.DLL y el ordenador tiene definido el idioma francés, también se instalará VB5FR.DLL.


Fichero de dependencias de ejemplo

Esto es un ejemplo de un fichero de dependencias para un componente llamado MiOCX.OCX. Este fichero se llamará MiOCX.DEP:

[MiOCX.OCX]
Register = $(DLLSelfRegister)
Dest = $(WinSysPath)
Date = 1/23/1996
Time = 10:15:33
Version = 1.1.13.6
Uses1 = MiDLL.DLL
Uses2 = MiServer.EXE
Uses3 = VBRUN500.DLL

[MiServer.EXE]
Dest = $(WinPath)
Date = 1/23/1996
Time = 18:52:48
Version = 1.0.1.0
Uses1 = VBRUN500.DLL
Register = $(ExeSelfRegister)
ProgramIconTitle = Mi Programa
ProgramIconCmdLine = $(WinSysPath)\MiOCX.OCX

[MiDLL.DLL]
Register = $(DLLSelfRegister)
Version = 1.0.1.0

[VBRUN500.DLL]
Dest = $(WinSysPath)

;Ficheros adicionales para soporte internacional
[VBRUN500.DLL <0007>]
Uses1 = VB5DE.DLL

[VBRUN500.DLL <000C>]
Uses1 = VB5FR.DLL


MiOCX.OCX es un fichero autoregistrable que se instalará en el directorio Windows\System. MiOCX.OCX tiene tres ficheros dependientes: MiDLL.DLL, MiServer.EXE, y VBRUN500.DLL.

MiServer.EXE un fichero autoregistrable que se instalará en el directorio Windows. Tiene un fichero dependiente, VBRUN500.DLL. Si MiServer.EXE se instala se creará un acceso directo con el título "Mi Porgrama" y la línea de comandos Windows\System\MyOCX.OCX.

MiDLL.DLL es también un fichero autoregistrable. Como no se especifica un destino para MiDLL.DLL se copiará en el directorio destino de su "padre", MiOCX.OCX.

VBRUN500.DLL no se registrará porque no se especificó una clave Register en su sección. Se copiará al directorio Windows\System. Si se instala se instalará también VB5DE.DLL si el ordenador tiene configurado el idioma alemán y VB5SP.DLL si es el francés. Si el idioma es otro no se instalará ningún fichero adicional.


Cómo busca la Informacion de Dependencia el Setup Wizard

Cuando el Setup Wizard necesita encontrar la información de dependencia para un fichero (por ejemplo MiOCX.OCX) sigue un camino específico y usa los siguientes métodos para localizar una sección titulada [MiOCX.OCX]; cuando encuentra la sección finaliza la búsqueda.

1. Si encuentra el fichero en un .DEP, usará la información del primer .DEP en el cual encontró el fichero.

2. Mira en el fichero maestro de dependencias por defecto de Visual Basic 5.0 (VB5DEP.INI). La información de este fichero sobreescribe la que pueda encontrar en cualquier otra parte.

3. Busca un fichero de dependencias llamado MiOCX.DEP. Si lo encientra buscará la sección [MiOCX.OCX].

4. Buscará el fichero .DEP asociado con el "padre" de MiOCX.OCX y posiblemente continuará subiendo en la cadena de "padres" hasta que encuentre una sección titulada [MiOCX.OCX].



Trucos Trucos

Visual Basic Página de Visual Basic

Página principal Página principal

www.jrubi.com