Está en la página 1de 6

http://msdn.microsoft.com/es-es/library/49b92ztk(VS.80).

aspx

Tutorial: Utilizar una accin personalizada para crear una base de datos en la instalacin
En el siguiente tutorial se muestra el uso de una accin personalizada y de la propiedad CustomActionData para crear una base de datos y una tabla de base de datos durante la instalacin.

Nota Este tutorial requiere tener instalado SQL Server en el equipo donde se implementar la aplicacin. Nota Los cuadros de dilogo y comandos de men que se ven podran ser distintos de los que se incluyen en la Ayuda, dependiendo de la configuracin o edicin activas. Para cambiar la configuracin, elija Importar y exportar configuraciones en el men Herramientas. Para obtener ms informacin, vea Valores de configuracin de Visual Studio. Nota En las siguientes instrucciones se detalla cmo se crea un proyecto de implementacin utilizando un proyecto de Visual Basic; los principios generales se aplican a todos los proyectos de lenguajes de Visual Studio que admiten la implementacin de aplicaciones basadas en Windows.

Para crear una clase del instalador


1. 2. En el men Archivo, haga clic en Nuevo proyecto. En el cuadro de dilogo Nuevo proyecto, seleccione Proyectos de Visual Basic en el panel Tipo de proyecto y, a continuacin seleccione Biblioteca de clases en el panel Plantillas. En el cuadro Nombre, escriba DBCustomAction. En el men Proyecto, haga clic en Agregar nuevo elemento. En el cuadro de dilogo Agregar nuevo elemento, seleccione Clase del instalador. En el cuadro Nombre, escriba VbDeployInstaller.vb.

3. 4.

Para crear un objeto de conexin de datos


1. 2. 3. En el Explorador de servidores, seleccione Conexiones de datos. Haga clic con el botn secundario del mouse y elija Agregar conexin. En el cuadro de dilogo Elegir origen de datos, seleccione Microsoft SQL Server. En el cuadro de dilogo Agregar conexin, realice lo siguiente: a. En la lista desplegable Nombre de servidor, escriba o seleccione un nombre de servidor. b. Seleccione Utilizar autenticacin de Windows. c. En el cuadro de base de datos, escriba principal. d. Haga clic en Aceptar para cerrar el cuadro de dilogo. En el men Datos, haga clic en Agregar nuevo origen de datos, a continuacin, utilice el asistente para agregar la conexin que estableci en los pasos anteriores. Para comprobar que el origen de datos est en el proyecto, haga clic en Mostrar orgenes de datos en el men Datos.

4.

Para crear un archivo de texto que contenga una instruccin SQL para crear una base de datos
1. 2. 3. En el Explorador de soluciones, seleccione el proyecto DBCustomAction. En el men Proyecto, elija Agregar nuevo elemento. En el cuadro de dilogo Agregar nuevo elemento, seleccione Archivo de texto. En el cuadro Nombre, escriba sql.txt (en minsculas). Agregue el siguiente texto al archivo sql.txt: CREATE TABLE [dbo].[Employees] ( [Name] [char] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , [Rsvp] [int] NULL , [Requests] [nvarchar] (4000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ) ON [PRIMARY]; ALTER TABLE [dbo].[Employees] WITH NOCHECK ADD CONSTRAINT [PK_Employees] PRIMARY KEY CLUSTERED ( [Name] ) ON [PRIMARY]; 4. 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. 2. En el Explorador de soluciones, seleccione VbDeployInstaller.vb. En el Men Ver, elija Cdigo. Agregue la siguiente instruccin Imports al principio del mdulo:

VB Imports System.IO Imports System.Reflection Imports System.Data.SqlClient 3. Agregue el siguiente cdigo a la clase VbDeployInstaller, despus de la declaracin MyBase.New: VB Public Class VbDeployInstaller Dim masterConnection As New System.Data.SqlClient.SqlConnection Public Sub New() MyBase.New() 'This call is required by the Component Designer. InitializeComponent() 'Add initialization code after the call to InitializeComponent End Sub Private Function GetSql(ByVal Name As String) As String Try ' Gets the current assembly. Dim Asm As [Assembly] = [Assembly].GetExecutingAssembly() ' Resources are named using a fully qualified name. Dim strm As Stream = Asm.GetManifestResourceStream( _ Asm.GetName().Name + "." + Name) ' Reads the contents of the embedded file. Dim reader As StreamReader = New StreamReader(strm) Return reader.ReadToEnd() Catch ex As Exception MsgBox("In GetSQL: " & ex.Message) Throw ex End Try End Function Private Sub ExecuteSql(ByVal DatabaseName As String, ByVal Sql As String) Dim Command As New SqlClient.SqlCommand(Sql, masterConnection) ' Initialize the connection, open it, and set it to the "master" database

masterConnection.ConnectionString = My.Settings.masterConnectionString Command.Connection.Open() Command.Connection.ChangeDatabase(DatabaseName) Try Command.ExecuteNonQuery() Finally ' Closing the connection should be done in a Finally block Command.Connection.Close() End Try End Sub Protected Sub AddDBTable(ByVal strDBName As String) Try ' Creates the database. ExecuteSql("master", "CREATE DATABASE " + strDBName) ' Creates the tables. ExecuteSql(strDBName, GetSql("sql.txt")) Catch ex As Exception ' Reports any errors and abort. MsgBox("In exception handler: " & ex.Message) Throw ex End Try End Sub Public Overrides Sub Install(ByVal stateSaver As _ System.Collections.IDictionary) MyBase.Install(stateSaver) AddDBTable(Me.Context.Parameters.Item("dbname")) End Sub End Class 4. En el men Generar, elija Generar DBCustomAction.

Para crear un proyecto de implementacin


1. 2. En el men Archivo, haga clic en Agregar y, a continuacin, en Nuevo proyecto. En el cuadro de dilogo Agregar nuevo proyecto, abra el nodo Otros tipos de proyectos y seleccione Proyectos de instalacin e implementacin en el panel Tipo de proyecto. A continuacin, seleccioneProyecto de instalacin en el panel Plantillas. En el cuadro Nombre, escriba DBCustomAction_Setup. En la ventana Propiedades, seleccione la propiedad ProductName y escriba Instalador de DB. En el Editor del sistema de archivos, seleccione la Carpeta de la aplicacin. En el men Accin, haga clic en Agregar y, a continuacin, en Resultados del proyecto. En el cuadro de dilogo Agregar grupo de resultados del proyecto, seleccione Resultado principal para el proyecto DBCustomAction.

3. 4. 5.

Para agregar un cuadro de dilogo de instalacin personalizado


1. 2. 3. 4. 5. 6. 7. 8. 9. Seleccione el proyecto DBCustomAction_Setup en el Explorador de soluciones. En el men Ver, seleccione Editor y elija Interfaz de usuario. En el Editor de la interfaz de usuario, seleccione el nodo Iniciar, situado 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. 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 Especificar nombre de la base de datos. 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. 2. 3. 4. 5. Seleccione el proyecto DBCustomAction_Setup en el Explorador de soluciones. En el men Ver, elija Editor y, a continuacin, haga clic en Acciones personalizadas. 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 la aplicacin. Seleccione Resultado principal de DBCustomAction (Active), luego haga clic en Aceptar para cerrar el cuadro de dilogo. Asegrese de que el elemento Resultado principal de DBCustomAction (Active) est seleccionado en el Editor de acciones personalizadas. En la ventana Propiedades, seleccione la propiedadCustomActionData y escriba /dbname=[CUSTOMTEXTA1]. En el men Generar, elija Build DBCustomAction_Setup.

6.

Para instalar en el equipo de desarrollo


Seleccione el proyecto DBCustomAction_Setup en el Explorador de soluciones. En el men Proyecto, elija Instalar. Esto har que se ejecute el instalador en el equipo de desarrollo.

Nota Debe tener los permisos de instalacin en el equipo para poder ejecutar el instalador.

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\nombreDeInicioDeSesin\DBCustomAction_Setup\configuracin de proyecto\DBCustomAction_Setup.msi. La configuracin de proyecto predeterminada es Debug. Copie DBCustomAction_Setup.msi y los dems archivos y subdirectorios del directorio en otro equipo.

2.

Nota Para realizar una instalacin en un equipo que no est en una red, copie los archivos en medios tradicionales como el CD-ROM.
En el equipo de destino, haga doble clic en el archivo Setup.exe para ejecutar el instalador.

Nota Debe tener los permisos de instalacin en el equipo para poder ejecutar el instalador.

Para desinstalar la aplicacin


1. 2. En el Panel de control de Windows, haga doble clic en Agregar o quitar programas. En el cuadro de dilogo Agregar o quitar programas, seleccione DBCustomAction_Setup, haga clic en Quitar y, a continuacin, haga clic en Aceptar para cerrar el cuadro de dilogo.

Sugerencia Para desinstalar la aplicacin en el equipo de desarrollo, elija Desinstalar en el men Proyecto.

Vea tambin
Referencia
CustomActionData (Propiedad)

Conceptos
Control de errores en acciones personalizadas

Otros recursos
Administracin de acciones personalizadas en la implementacin

También podría gustarte