Walkthrough: Usando uma ação personalizada para criar um banco de dados na instalação

A instrução a seguir demonstra o uso de uma ação personalizada e a CustomActionData propriedade para criar um banco de dados e a tabela de banco de dados durante a instalação.

ObservaçãoObservação

Esta explicação passo a passo requer SQL Server no computador onde você implantará o aplicativo.

ObservaçãoObservação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações do Visual Studio.

ObservaçãoObservação

As instruções a seguir demonstram como criar um projeto de implantação por meio de um projeto de Visual Basic; os princípios gerais se aplicam a todos os projetos de linguagem Visual Studio oferece suporte à implantação de aplicativos baseados em Windows.

Para criar uma classe de instalador

  1. No menu File, clique em New Project.

  2. No Novo projeto caixa de diálogo, selecione Visual Basic projetos na Tipo de projeto painel e selecione Class Library na modelos painel. No nome , digite DBCustomAction.

  3. No menu Project, clique em Add New Item.

  4. No Add New Item caixa de diálogo, selecione A classe de instalador. No nome , digite VbDeployInstaller.vb.

Para criar um objeto de conexão de dados

  1. Em Server Explorer, selecione Conexões de dados. Com o botão direito e clique em Add Connection.

  2. No Choose Data Source caixa de diálogo, selecione De Microsoft SQL Server.

  3. Na caixa de diálogo Add Connection, faça o seguinte:

    1. No nome do servidor lista, digite ou selecione um nome de servidor.

    2. Selecione Use Windows Authentication.

    3. Na caixa banco de dados, digite mestre.

    4. Clique OK para fechar a caixa de diálogo.

  4. Do dados menu, clique em Add New Data Sourcee em seguida, use o Assistente para adicionar a conexão estabelecida por você nas etapas anteriores. Para verificar se a fonte de dados está no projeto, clique em Show Data Sources sobre o dados menu.

Para criar um arquivo de texto que contém uma instrução de SQL para criar um banco de dados.

  1. Em Solution Explorer, selecione o projeto DBCustomAction. No menu Project, clique em Add New Item.

  2. No Add New Item caixa de diálogo, clique em Arquivo de texto. No nome , digite sql.txt (deve estar em letras minúsculas).

  3. Adicione o seguinte ao arquivo 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. Em Solution Explorer, selecione sql.txt. No Propriedades janela, defina a BuildAction propriedade para Embedded Resource.

Para adicionar código para a classe de instalador para ler o arquivo de texto

  1. Em Solution Explorer, selecione VbDeployInstaller.vb. Sobre o Exibir menu, clique em código.

  2. Adicione o seguinte Imports a instrução na parte superior do módulo:

    Imports System.IO
    Imports System.Reflection
    Imports System.Data.SqlClient
    
  3. Adicione o seguinte código para o VbDeployInstaller classe, após a declaração de MyBase.New:

    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. Sobre o Build menu, clique em Build dbcustomaction.

Para criar um projeto de implantação

  1. Sobre o arquivo menu, clique em Adicionare, em seguida, clique em Novo projeto.

  2. No Add New Project caixa de diálogo Abrir o Other Project Types nó e selecione Setup and Deployment Projects na Tipo de projeto painel. Selecione O projeto de instalação na modelos de painel. No nome , digite DBCustomAction_Setup.

  3. No Propriedades janela, selecione o ProductName propriedade e o tipo de DB Installer.

  4. No File System Editor, selecione o A pasta de aplicativo. Sobre o ação menu, clique em Adicionare, em seguida, clique em Project Output.

  5. No Add Project Output Group caixa de diálogo, selecione saída principal para o DBCustomAction project.

Para criar uma caixa de diálogo Instalação personalizada

  1. Selecione o DBCustomAction_Setup projeto em Solution Explorer. Sobre o Exibir , aponte para Editore clique em Interface de usuário.

  2. No User Interface Editor, selecione o Iniciar nó em instalar. Sobre o ação menu, clique em Caixa de diálogo Adicionar.

  3. No Caixa de diálogo Adicionar caixa de diálogo, selecione o Caixas de texto (A) caixa de diálogo e clique OK.

  4. Sobre o ação menu, clique em Mover para cima. Repita até que o Caixas de texto (A) caixa de diálogo está acima de A pasta de instalação nó.

  5. No Propriedades janela, selecione o BannerText propriedade e especificar o nome do banco de dados do tipo.

  6. Selecione o corpodetexto propriedade e tipo esta caixa de diálogo permite que você especifique o nome do banco de dados a ser criado no servidor de banco de dados.

  7. Selecione o Edit1Label propriedade e digite o nome do banco de dados:.

  8. Selecione o Edit1Property propriedade e o tipo de CUSTOMTEXTA1.

  9. Selecione o Edit2Visible, Edit3Visible, e Edit4Visible propriedades e defini-los como False.

Para criar uma ação personalizada

  1. Selecione o DBCustomAction_Setup projeto em Solution Explorer. Sobre o Exibir , aponte para Editore, em seguida, clique em Custom Actions.

  2. No Custom Actions Editor, selecione o instalar nó. Sobre o ação menu, clique em Add Custom Action.

  3. No Selecione o item no projeto caixa de diálogo, clique duas vezes o A pasta de aplicativo.

  4. Selecione saída primária do DBCustomAction (ativo), em seguida, clique em OK para fechar a caixa de diálogo.

  5. Certifique-se de que saída primária do DBCustomAction (ativo) item é selecionado na Custom Actions Editor. No Propriedades janela, selecione o CustomActionData propriedade e o tipo de /dbname = [CUSTOMTEXTA1. Esses dados são passados para a ação personalizada que é executada no final da instalação. Para obter mais informações, consulte Propriedade CustomActionData.

  6. Sobre o Build menu, clique em Build dbcustomaction_setup.

Para instalar o aplicativo no computador de desenvolvimento

  • Selecione o DBCustomAction_Setup projeto em Solution Explorer. Sobre o projeto menu, clique em instalar.

    Isso irá executar o instalador em seu computador de desenvolvimento.

    ObservaçãoObservação

    Você deve ter as permissões de instalação no computador para executar o instalador.

Para implantar o aplicativo para outro computador

  1. Em Windows Explorer, navegue até o diretório de projeto e localizar o instalador integrado. O caminho padrão será \documents and Settings \yourloginname\DBCustomAction_Setup\configuração de projeto\ DBCustomAction_Setup.msi. O padrão configuração de projeto é a depuração.

  2. Copie o DBCustomAction_Setup.msi todos os outros arquivos e subdiretórios no diretório para outro computador.

    ObservaçãoObservação

    Para instalar o aplicativo em um computador que não esteja em uma rede, copie os arquivos para mídia tradicional como, por exemplo, CD-ROM.

    No computador de destino, clique duas vezes em Setup exe para executar o instalador.

    ObservaçãoObservação

    Você deve ter as permissões de instalação no computador para executar o instalador.

Para desinstalar o aplicativo

  1. No Windows O painel de controle, clique duas vezes em Adicionar ou remover programas.

  2. No Adicionar ou remover programas caixa de diálogo, selecione DBCustomAction_Setup, clique em Removere em seguida, clique em OK para fechar a caixa de diálogo.

    Dica

    Para desinstalar o aplicativo do computador de desenvolvimento, o projeto menu, clique em desinstalar.

Consulte também

Referência

Propriedade CustomActionData

Conceitos

Tratamento de erros em ações Personalizar

Outros recursos

Personalizar Gerenciamento de ações na implantação