Vous êtes sur la page 1sur 5

utilizar una accin personalizada para crear una

base de datos durante la instalacin


En el siguiente tutorial se muestra el uso de una accin personalizada y la propiedad
CustomActionData para crear una base de datos y una tabal de base de datos durante la instalacin.
Nota Este tutorial requiere tener instalado SQL Server en el equipo donde se implementar la
aplicacin.

Para crear una clase del instalador


1.
2.
3.
4.
5.
6.

En el men Archivo, elija Nuevo y, a continuacin, seleccione Proyecto.


En el cuadro de dilogo Nuevo proyecto, seleccione Proyectos de Visual Basic en el panel
Tipos de proyecto y, a continuacin seleccione Biblioteca de clases en el panel Plantillas. En
el cuadro Nombre, escriba DBCustomAction.
Haga clic en Aceptar para cerrar el cuadro de dilogo.
En el men Proyecto, elija Agregar nuevo elemento.
En el cuadro de dilogo Agregar nuevo elemento, seleccione Clase del instalador. En el
cuadro Nombre, escriba DBCustomAction.
Haga clic en Aceptar para cerrar el cuadro de dilogo.

Para crear un objeto de conexin de datos


1.

En el Explorador de servidores, seleccione Conexiones de datos. Haga clic con el botn


secundario y elija Agregar conexin.

2.

En el cuadro de dilogo Propiedades de vnculo de datos, haga lo siguiente:


a.
Escriba el nombre de servidor.
b.
Seleccione Usar seguridad integrada de Windows NT.
c.
En el cuadro de base de datos, escriba principal.
d.
Haga clic en Aceptar para cerrar el cuadro de dilogo.
Arrastre la nueva conexin y sultela en el diseador DBCustomAction.vb para crear un
objeto sqlConnection1.

3.

Para crear un archivo de texto que contenga una instruccin SQL para crear una base de
datos
1.

En el Explorador de soluciones, seleccione el proyecto DBCustomAction. En el men


Proyecto, elija Agregar nuevo elemento.

2.

En el cuadro de dilogo Agregar nuevo elemento, seleccione Archivo de texto. En el cuadro


Nombre, escriba sql.txt (en minsculas).
Haga clic en Aceptar para cerrar el cuadro de dilogo.
Agregue el siguiente texto al archivo sql.txt:

3.
4.
5.

CREATE TABLE [dbo].[Employees] (

6.

[Name] [char] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,

7.

[Rsvp] [int] NULL ,

8.

[Requests] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL

9.

) ON [PRIMARY];

10.
11.

ALTER TABLE [dbo].[Employees] WITH NOCHECK ADD

12.

CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED

13.

14.

[Name]
) ON [PRIMARY];

15.

En el Explorador de soluciones, seleccione sql.txt. En la ventana Propiedades, establezca la


propiedad BuildAction en el valor Recurso incrustado.

Para agregar cdigo a la clase del instalador que permita leer el archivo de texto
1.

En el Explorador de soluciones, seleccione DBCustomAction.vb. En el men Ver, elija


Cdigo.

2.

Agregue las siguientes instrucciones Imports al principio del mdulo:

3.

Imports System.IO
Imports System.Reflection

4.

Agregue el cdigo siguiente a la clase:

5.

Private Function GetSql(ByVal Name As String) As String

6.

Try

7.
8.

' Gets the current assembly.

9.

Dim Asm As [Assembly] = [Assembly].GetExecutingAssembly()

10.
11.

' Resources are named using a fully qualified name.

12.

Dim strm As Stream = Asm.GetManifestResourceStream(Asm.GetName().Name + "."


+ Name)

13.
14.

' Reads the contents of the embedded file.

15.

Dim reader As StreamReader = New StreamReader(strm)

16.

Return reader.ReadToEnd()

17.

Catch ex As Exception

18.

MsgBox("In GetSQL: " & ex.Message)

19.

Throw ex

20.

End Try

21.
22.

{0><}100{>

End Function<0}

23.
24.
25.

Private Sub ExecuteSql(ByVal DatabaseName As String, ByVal Sql As String)


Dim Command As New SqlClient.SqlCommand(Sql, sqlConnection1)

26.
27.

Command.Connection.Open()

28.

Command.Connection.ChangeDatabase(DatabaseName)

29.

Try

30.
31.

Command.ExecuteNonQuery()
{0><}100{>Finally<0}

32.

' Finally, blocks are a great way to ensure that the connection

33.

' is always closed.

34.

Command.Connection.Close()

35.

End Try

36.

{0><}100{>

End Sub<0}

37.
38.
39.

Protected Sub AddDBTable(ByVal strDBName As String)


Try

40.

' Creates the database.

41.

ExecuteSql("master", "CREATE DATABASE " + strDBName)

42.
43.

' Creates the tables.

44.

ExecuteSql(strDBName, GetSql("sql.txt"))

45.
46.

Catch ex As Exception

47.

' Reports any errors and abort.

48.

MsgBox("In exception handler: " & ex.Message)

49.

Throw ex

50.

End Try

51.

{0><}100{>

End Sub<0}

52.
53.

Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)

54.

MyBase.Install(stateSaver)

55.

AddDBTable(Me.Context.Parameters.Item("dbname"))
{0><}100{>

56.

End Sub<0}

En el men Generar, elija Generar DBCustomAction.

Para crear un proyecto de implementacin


1.
2.

3.
4.
5.
6.

En el men Archivo, elija Agregar proyecto, Nuevo proyecto.


En el cuadro de dilogo Agregar proyecto, seleccione Proyectos de instalacin e
implementacin en el panel Tipos de proyecto y, a continuacin seleccione Proyecto de
instalacin en el panel Plantillas. En el cuadro Nombre, escriba Instalador de
DBCustomAction.
Haga clic en Aceptar para cerrar el cuadro de dilogo.
En la ventana Propiedades, seleccione la propiedad ProductName y escriba DB Installer.
En el Editor del sistema de archivos, seleccione la Carpeta de la aplicacin. En el men
Accin, elija Agregar, Resultados del proyecto.
En el cuadro de dilogo Agregar grupo de resultados del proyecto, seleccione el resultado
principal para el proyecto DBCustomAction. Haga clic en Aceptar para cerrar el cuadro de
dilogo.

Para agregar un cuadro de dilogo de instalacin personalizado


1.

Seleccione el proyecto Instalador de DBCustomAction en el Explorador de soluciones. En el


men Ver, elija Editor y, a continuacin, seleccione Interfaz de usuario.

2.

En el Editor de la interfaz de usuario, seleccione el nodo Iniciar bajo Instalar. En el men


Accin, elija Agregar cuadro de dilogo.
En el cuadro de dilogo Agregar cuadro de dilogo, seleccione el cuadro de dilogo Cuadros
de texto (A) y, a continuacin, haga clic en Aceptar para cerrar el cuadro de dilogo.
En el men Accin, elija Subir. Repita esta accin hasta que el cuadro de dilogo Cuadros de
texto (A) quede situado encima del nodo Carpeta de instalacin.
En la ventana Propiedades, seleccione la propiedad BannerText y escriba Especifique el
nombre de la base de datos.

3.
4.
5.

6.
7.
8.
9.

Seleccione la propiedad BodyText y escriba Este cuadro de dilogo permite especificar el


nombre de la base de datos que se debe crear en el servidor de bases de datos.
Seleccione la propiedad Edit1Label y escriba Nombre de la base de datos:.
Seleccione la propiedad Edit1Property y escriba CUSTOMTEXTA1.
Seleccione las propiedades Edit2Visible, Edit3Visible y Edit4Visible y asgneles el valor
false.

Para crear la accin personalizada


1.

Seleccione el proyecto Instalador de DBCustomAction en el Explorador de soluciones. En el


men Ver, elija Editor y, a continuacin, seleccione Acciones personalizadas.

2.

En el Editor de acciones personalizadas, seleccione el nodo Instalar. En el men Accin, elija


Agregar accin personalizada.
En el cuadro de dilogo Seleccionar elemento en el proyecto, haga doble clic en la Carpeta
de aplicacin.
Seleccione el elemento Resultado principal de DBCustomAction(Active) y, a continuacin,
haga clic en Aceptar para cerrar el cuadro de dilogo.
En la ventana Propiedades, seleccione la propiedad CustomActionData y escriba
/dbname=[CUSTOMTEXTA1].
En el men Generar, elija Generar Instalador de DBCustomAction.

3.
4.
5.
6.

Para instalar en el equipo de desarrollo

Seleccione el proyecto Instalador de DBCustomAction en el Explorador de soluciones. En el


men Proyecto, elija Instalar.

Esto har que se ejecute el instalador en el equipo de desarrollo.

Nota

Para poder ejecutar el instalador, debe tener los permisos de instalacin

correspondientes en el equipo.

Para implementar en otro equipo


1.

En el Explorador de Windows, desplcese hasta el directorio del proyecto y busque el instalador


que se ha generado. La ruta de acceso predeterminada ser \Documents and
Settings\nombre_inicio_sesin\Instalador de DBCustomAction\configuracin_proyecto\Instalador
de DBCustomAction.msi. La configuracin_proyecto predeterminada es Debug.

2.

Copie el archivo Instalador de DBCustomAction.msi y todos los dems archivos y subdirectorios


del directorio en el otro equipo.
Nota Para instalar en un equipo que no est en red, copie los archivos en un medio tradicional,
tal como un CD-ROM.
En el equipo de destino, haga doble clic en el archivo Setup.exe para ejecutar el instalador.
Nota Para poder ejecutar el instalador, debe tener los permisos de instalacin
correspondientes en el equipo.

Para desinstalar la aplicacin


1.

En el Panel de control de Windows, haga doble clic en Agregar o quitar programas.

2.

En el cuadro de dilogo Agregar o quitar programas, seleccione Instalador de


DBCustomAction y haga clic en Quitar, a continuacin haga clic en Aceptar para cerrar el
cuadro de dilogo.

Sugerencia

Para desinstalar del equipo de desarrollo, en el men Proyecto, elija Desinstalar.

Vea tambin
Administracin de acciones personalizadas en la implementacin | CustomActionData (Propiedad) |
Conectarse a orgenes de datos con ADO.NET | Control de errores en acciones personalizadas

Vous aimerez peut-être aussi