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ção |
---|
Esta explicação passo a passo requer SQL Server no computador onde você implantará o aplicativo. |
Observaçã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çã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
No menu File, clique em New Project.
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.
No menu Project, clique em Add New Item.
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
Em Server Explorer, selecione Conexões de dados. Com o botão direito e clique em Add Connection.
No Choose Data Source caixa de diálogo, selecione De Microsoft SQL Server.
Na caixa de diálogo Add Connection, faça o seguinte:
No nome do servidor lista, digite ou selecione um nome de servidor.
Selecione Use Windows Authentication.
Na caixa banco de dados, digite mestre.
Clique OK para fechar a caixa de diálogo.
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.
Em Solution Explorer, selecione o projeto DBCustomAction. No menu Project, clique em Add New Item.
No Add New Item caixa de diálogo, clique em Arquivo de texto. No nome , digite sql.txt (deve estar em letras minúsculas).
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];
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
Em Solution Explorer, selecione VbDeployInstaller.vb. Sobre o Exibir menu, clique em código.
Adicione o seguinte Imports a instrução na parte superior do módulo:
Imports System.IO Imports System.Reflection Imports System.Data.SqlClient
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
Sobre o Build menu, clique em Build dbcustomaction.
Para criar um projeto de implantação
Sobre o arquivo menu, clique em Adicionare, em seguida, clique em Novo projeto.
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.
No Propriedades janela, selecione o ProductName propriedade e o tipo de DB Installer.
No File System Editor, selecione o A pasta de aplicativo. Sobre o ação menu, clique em Adicionare, em seguida, clique em Project Output.
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
Selecione o DBCustomAction_Setup projeto em Solution Explorer. Sobre o Exibir , aponte para Editore clique em Interface de usuário.
No User Interface Editor, selecione o Iniciar nó em instalar. Sobre o ação menu, clique em Caixa de diálogo Adicionar.
No Caixa de diálogo Adicionar caixa de diálogo, selecione o Caixas de texto (A) caixa de diálogo e clique OK.
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ó.
No Propriedades janela, selecione o BannerText propriedade e especificar o nome do banco de dados do tipo.
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.
Selecione o Edit1Label propriedade e digite o nome do banco de dados:.
Selecione o Edit1Property propriedade e o tipo de CUSTOMTEXTA1.
Selecione o Edit2Visible, Edit3Visible, e Edit4Visible propriedades e defini-los como False.
Para criar uma ação personalizada
Selecione o DBCustomAction_Setup projeto em Solution Explorer. Sobre o Exibir , aponte para Editore, em seguida, clique em Custom Actions.
No Custom Actions Editor, selecione o instalar nó. Sobre o ação menu, clique em Add Custom Action.
No Selecione o item no projeto caixa de diálogo, clique duas vezes o A pasta de aplicativo.
Selecione saída primária do DBCustomAction (ativo), em seguida, clique em OK para fechar a caixa de diálogo.
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.
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ção Você deve ter as permissões de instalação no computador para executar o instalador.
Para implantar o aplicativo para outro computador
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.
Copie o DBCustomAction_Setup.msi todos os outros arquivos e subdiretórios no diretório para outro computador.
Observaçã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ção Você deve ter as permissões de instalação no computador para executar o instalador.
Para desinstalar o aplicativo
No Windows O painel de controle, clique duas vezes em Adicionar ou remover programas.
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
Conceitos
Tratamento de erros em ações Personalizar