Podrobné pokyny: Použití vlastní akce pro vytvoření databáze při instalaci

Následující návod znázorňuje použití vlastní akce a vlastnosti CustomActionData pro vytvoření databáze a tabulky databáze během instalace.

Poznámka

Tento návod vyžaduje aplikaci SQL Server na počítači, do kterého budete aplikaci nasazovat.

Poznámka

Ve vašem počítači se pro některé z prvků uživatelského rozhraní aplikace Visual Studio mohou zobrazit jiné názvy a umístění, než jsou uvedena v následujících pokynech. Tyto prvky jsou určeny verzí aplikace Visual Studio a použitým nastavením. Další informace naleznete v tématu Visual Studio, nastavení.

Poznámka

Následující pokyny demonstrují, jak lze vytvořit projekt nasazení pomocí Visual Basic projektu; Jisté obecné zásady se vztahují na všechny projektové jazyky aplikace Visual Studio, které podporují zavedení aplikace určených pro systém Windows.

Chcete-li vytvořit instalační třídu

  1. V menu Soubor klikněte na Nový Projekt.

  2. V dialogovém okně Nový projekt, v podokně Typ projektu, vyberte Projekty Visual Basic a poté vyberte položku Knihovna tříd v podokně Šablony. Do pole Název zadejte DBCustomAction.

  3. V nabídce Project (Projekt) klepněte na příkaz Add New Item (Přidat novou položku).

  4. V dialogovém okně Přidat novou položku vyberte Instalační třída. Do pole Název zadejte VbDeployInstaller.vb.

Chcete-li vytvořit objekt pro připojení k databázi

  1. V okně Průzkumník serveru vyberte Datová připojení. Klikněte pravým tlačítkem myši a klikněte na příkaz Přidat připojení.

  2. V dialogovém okně Vybrat zdroj dat vyberte Microsoft SQL Server.

  3. V dialogovém okně Přidat připojení proveďte následující:

    1. V seznamu Název serveru zadejte nebo vyberte název serveru.

    2. Vyberte Použít ověřování systému Windows.

    3. Do pole databáze zadejte master.

    4. Klepnutím na tlačítko OK zavřete dialogové okno.

  4. V menu Data klikněte na příkaz Přidat nový zdroj dat a poté použijte průvodce pro přidání připojení, které jste vytvořili v předchozích krocích. Chcete-li ověřit, že zdroj dat je v projektu, klikněte na příkaz Zobrazit zdroje dat v menu Data.

Chcete-li vytvořit textový soubor obsahující příkaz SQL pro vytvoření databáze

  1. V okně Průzkumník řešení vyberte projekt DBCustomAction. V nabídce Project (Projekt) klepněte na příkaz Add New Item (Přidat novou položku).

  2. V dialogovém okně Přidat novou položku klikněte na položku Textový soubor. Do pole Název zadejte sql.txt (musí být malá písmena).

  3. Následující přidejte do souboru 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. V okně Průzkumník řešení vyberte sql.txt. V okně Vlastnosti nastavte vlastnost BuildAction na hodnotu Integrovaný prostředek.

Chcete-li přidat kód do třídy instalace pro čtení textového souboru

  1. V okně Průzkumník řešení vyberte VbDeployInstaller.vb. V menu Zobrazit klikněte na příkaz Kód.

  2. Přidejte následující Imports příkaz do horní části modulu:

    Imports System.IO
    Imports System.Reflection
    Imports System.Data.SqlClient
    
  3. Po deklaraci MyBase.New přidejte následující kód do třídy VbDeployInstaller :

    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. V menu Sestavení klikněte na příkaz Sestavit DBCustomAction.

Chcete-li vytvořit projekt nasazení

  1. V menu Soubor klikněte na Přidat a potom klikněte na Nový projekt.

  2. V dialogovém okně Přidat nový projekt otevřete uzel Ostatní typy projektů a vyberte Projekty instalace a nasazení v podokně Typ projektu. Poté vyberte Projekt instalace v podokně Šablony. Do pole Název zadejte DBCustomAction_Setup.

  3. V okně Vlastnosti vyberte vlastnost ProductName a napište DB Installer.

  4. V okně Editor systému souborů vyberte Složka aplikace. V menu Akce klikněte na Přidat a potom klikněte na Výstup projektu.

  5. V dialogovém okně Přidat skupinu výstupů projektu vyberte Primární výstup pro projekt DBCustomAction.

Chcete-li vytvořit dialogové okno vlastní instalace

  1. Vyberte projekt DBCustomAction_Setup v okně Průzkumník řešení. V menu Zobrazit přejděte na příkaz Editor a klikněte na příkaz Uživatelské rozhraní.

  2. V okně Editor uživatelského rozhraní vyberte uzel Spustit pod uzlem Instalovat. V nabídce Akce klikněte na Přidat dialog.

  3. V dialogovém okně Přidat dialog vyberte dialogové okno Textová pole (A) a klikněte na tlačítko OK.

  4. V menu Akce klikněte na příkaz Posunout nahoru. Opakujte, dokud nebude dialogové okno Textová pole (A) nad uzlem Instalační složka.

  5. V okně Vlastnosti vyberte vlastnost BannerText a zadejte text: Zadejte název databáze.

  6. Vyberte vlastnost BodyText a zadejte text: Toto dialogové okno vám umožňuje určit název databáze, která má být vytvořena na databázovém serveru.

  7. Vyberte vlastnost Edit1Label a zadejte text: Název databáze:.

  8. Vyberte vlastnost Edit1Property a zadejte CUSTOMTEXTA1.

  9. Vyberte vlastnosti Edit2Visible, Edit3Visible a Edit4Visible a nastavte jejich hodnoty na False.

Chcete-li vytvořit vlastní akci

  1. Vyberte projekt DBCustomAction_Setup v okně Průzkumník řešení. V menu Zobrazit přejděte na Editor a potom klikněte na příkaz Vlastní akce.

  2. V okně Editor vlastních akcí vyberte uzel Instalovat. V menu Akce klikněte na příkaz Přidat vlastní akci.

  3. V dialogovém okně Vybrat položku v projektu klikněte dvakrát na položku Složka aplikace.

  4. Vyberte Primární výstup z DBCustomAction (aktivní) a poté klikněte na tlačítko OK pro uzavření dialogového okna.

  5. Ujistěte se, že položka Primární výstup z DBCustomAction (aktivní) je vybrána v okně Editor vlastních akcí. V okně Vlastnosti vyberte vlastnost CustomActionData a zadejte /dbname = [CUSTOMTEXTA1]. Tato data jsou předána vlastní akci, která je spuštěna na konci instalace. Další informace naleznete v tématu vlastnost CustomActionData.

  6. V menu Sestavení klikněte na příkaz Sestavit DBCustomAction_Setup.

Chcete-li nainstalovat aplikaci na vašem vývojovém počítači

  • Vyberte projekt DBCustomAction_Setup v okně Průzkumník řešení. V menu Projekt klikněte na příkaz Instalovat.

    Toto spustí instalační program na vašem vývojovém počítači.

    Poznámka

    Chcete-li spustit instalační program, musíte mít na vašem počítači oprávnění pro instalaci.

Chcete-li nasadit aplikaci na jiný počítač

  1. V okně Průzkumník Windows přejděte do adresáře s vaším projektem a najděte sestavený instalační program. Výchozí cesta bude mít tvar \documents and settings\vášlogin\DBCustomAction_Setup\konfigurace projektu\ DBCustomAction_Setup.msi. Výchozí konfigurace projektu je ladit.

  2. Zkopírujte DBCustomAction_Setup.msi a všechny ostatní soubory a podadresáře v tomto adresáři do jiného počítače.

    Poznámka

    Chcete-li nainstalovat aplikaci na počítač, který není v síti, zkopírujte soubory na tradiční médium, jako je například disk CD-ROM.

    Na cílovém počítači dvakrát klikněte na soubor Setup.exe, chcete-li spustit instalační program.

    Poznámka

    Chcete-li spustit instalační program, musíte mít na vašem počítači oprávnění pro instalaci.

Chcete-li odinstalovat aplikaci

  1. V okně Ovládací panely systému Windows, dvakrát klikněte na Přidat nebo odebrat programy.

  2. V dialogovém okně Přidat nebo odebrat programy vyberte DBCustomAction_Setup, klikněte na tlačítko Odebrat a poté klikněte na tlačítko Ok pro uzavření dialogového okna.

    Tip

    Chcete-li odinstalovat aplikaci z vašeho vývojového počítače, v menu Projekt klikněte na tlačítko Odinstalovat.

Viz také

Odkaz

vlastnost CustomActionData

Koncepty

Zpracování chyb ve vlastních akcích

Další zdroje

Správa vlastních akcí při nasazení