Heim Datenbank MySQL-Tutorial VS2010(英文版)打包部署自动安装数据库

VS2010(英文版)打包部署自动安装数据库

Jun 07, 2016 pm 03:29 PM
vs2010 安装 打包 数据库 自动 英文版 部署

上周第一次打包自己的系统时,在别人电脑上使用不了,因为远程连接不了我的数据库,所以要想在别人的电脑上运行我的系统则需要手动附加我的数据库。 下面我来为大家介绍一种方法:在打包程序时将数据库一起打包,这样安装程序的时候会自动附加数据库(前提是

上周第一次打包自己的系统时,在别人电脑上使用不了,因为远程连接不了我的数据库,所以要想在别人的电脑上运行我的系统则需要手动附加我的数据库。

下面我来为大家介绍一种方法:在打包程序时将数据库一起打包,这样安装程序的时候会自动附加数据库(前提是该电脑上有SQL SERVER)。

一).创建部署项目
1. 打开VS.NET2011。
2.在“File”菜单上指向“New Project”。
3. 在“New Project”对话框中,选择“Installed Templates”窗格中的”Other Project Types”中的“Setup and Deployment”,然后选择“Visual Studio Installer”窗格中的“Setup Project”。在“Name”框中键入 MySetup。
 
4. 单击“OK”关闭对话框。
5. 项目被添加到解决方案资源管理器中,并且文件系统编辑器打开。

6. 在“Property”窗口中,选择 ProductName 属性,并键入 数据库打包安装。

二).将 主程序 项目的输出添加到部署项目中

1. 在“File System”中,选择“Application Folder”。右击指向“Add”,然后选择“File”。

2. 在“Add File”对话框中,选择你程序的dll及exe文件. 

3. 单击“打开”关闭对话框.

三).创建安装程序类
1. 在“Solution Explorer”中的“Solution’MySetup’”上右键选择“Add”后选择“New Project”。
2. 在“New Project”对话框中,选择“Other Languages”窗格中的“Visual Basic“,然后选择“Class Library”。在“Name”框中键入 InstallDB。
 
3. 单击“OK”关闭对话框。
4. 从“InstallDB”类库下右键选择"Add”中的“New Item”。

5. 在“New Item”对话框中选择“General”后选择“Installer Class”。在“Name”框中键入 InstallDB。 
6. 单击“Add”关闭对话框。
7. “InstallDB”安装程序类详细代码附后。 
 

四).创建自定义安装对话框
1.   在解决方案资源管理器中选择“MySetup”项目。右键然后在“View”菜单上选择“User Interface”。

2.   在用户界面编辑器中,选择“Install”下的“Start”节点选择“Add Dialog”。
3    在“Add Dialog”对话框中,选择“Textboxs (A)”对话框,然后单击“OK”关闭对话框。
4.   在“Textboxs (A)”右键菜单上,选择“Move up”。重复此步骤,直到“Textboxs (A)”对话框位于“Installation Folder”节点之上。
5    在“Textboxs (A)”的“Property”窗口中,选择 BannerText 属性并键入:安装数据库。
6.   选择 BodyText 属性并键入:安装程序将在目标机器上安装数据库。
7.   选择 Edit1Label 属性并键入:数据库名称:
8 .  选择 Edit1Property 属性并键入 DBNAME
9.   选择 Edit1Value 属性并键入: budgetSysDB
10. 选择 Edit2Label 属性并键入:服务器名:
11. 选择 Edit2Property 属性并键入 SERVER
12. 选择 Edit2Value 属性并键入:(local)
13. 选择 Edit3Label 属性并键入:用户名:
13. 选择 Edit3Value 属性并键入:sa
15. 选择 Edit3Property 属性并键入 USER
16. 选择 Edit4Label 属性并键入:密码:
18. 选择 Edit4Property 属性并键入 PWD
19. 选择Edit2Visible 属性,设置为 false;选择Edit2Visible、Edit3Visible 和 Edit4Visible 属性,并将它们设置为 true 

五).创建自定义操作
1. 在解决方案资源管理器中选择“MySetup”项目,右键在“View”菜单上选择“Custom Actions”。
2. 在自定义操作编辑器中选择“Install”节点。右键选择“Add Custom Action……”。
3. 在“Select Item in Project”对话框中,双击“Application Folder”。
4. 单击”Add output”按钮选择”Project”中的” InstallDB”,在下面框中选择”Primary Output”(此项一般为默认),然后单击“OK”关闭对话框。
 

5. 在”Primary Output from InstallDB(Active)的属性窗口中,选择 CustomActionData属性并键入:/dbname=[DBNAME] /server=[SERVER] /user=[USER] /pwd=[PWD] /targetdir="[TARGETDIR]/"。
附:/targetdir="[TARGETDIR]/"是安装后的目标路径,为了在installDB类中获得安装后的路径,我们设置此参数。  

六).添加数据库文件:
1. 在解决方案资源管理器中选择“MySetup”项目,右键在“Add”选择“file”。
2.把数据文件”BookManage_Data.MDF”” BookManage_Log.LDF”添加到”MySetup”。 

七).”InstallDB”安装程序类代码(vb.net)

 

Imports System.ComponentModel
Imports System.Configuration.Install
Imports System.Collections.Generic
Imports System
Imports System.Data
Imports System.Data.SqlClient

Namespace InstallDB

Partial Public Class InstallerDB
    Inherits Installer

    '''


    ''' 必须的设计器变量
    '''

    ''' 2011-4-27 10:20 by dan
    Private components As System.ComponentModel.IContainer = Nothing


    '''


    ''' 构造函数
    '''

    ''' 2011-4-27 10:20 by dan
    Public Sub New()

        MyBase.New()
        'This call is required by the Component Designer.
        InitializeComponent()
        'Dim state As System.Collections.IDictionary = New Hashtable
        'Add initialization code after the call to InitializeComponent

    End Sub

    '''


    ''' 清理所有正在使用的资源
    '''

    ''' 2011-4-27 10:20 by dan
    Protected Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not IsNothing(components) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub

#Region "组件设计器生成的代码"
    '''


    ''' 设计器支持所需的方法——不要使用代码编辑器修改此方法的内容
    '''

    '''
    Private Sub InitializeComponent()
        components = New System.ComponentModel.Container
    End Sub
#End Region


#Region "数据库文件为mdf和ldf文件"
    '''


    ''' 附加数据库的mdf文件和ldf文件
    '''

    ''' sql语句
    ''' 数据名
    ''' mdf文件名
    ''' ldf文件名
    ''' 2011-4-27 15:57 by dan
    Private Sub CreateDataBase(ByVal strSql As String, ByVal DataName As String, ByVal strMdf As String, ByVal strLdf As String, ByVal path As String)
        '附加数据库
        Dim str As String
        Dim myConn As SqlConnection = New SqlConnection(strSql)
        str = "EXEC sp_attach_db @dbname='" & DataName & "',@filename1='" & strMdf & "',@filename2='" & strLdf & "'"

        Dim myCommand As SqlCommand = New SqlCommand(str, myConn)

        myConn.Open()
        myCommand.ExecuteNonQuery()
        myConn.Close()
    End Sub

    '''


    ''' 重写安装代码
    '''

    '''
    ''' 2011-5-7 18:46 by dan
    Public Overrides Sub Install(ByVal stateSaver As System.Collections.IDictionary)

        MyBase.Install(stateSaver)

        Dim server As String = Me.Context.Parameters("server")
        Dim uid As String = Me.Context.Parameters("user")
        Dim pwd As String = Me.Context.Parameters("pwd")
        Dim path As String = Me.Context.Parameters("targetdir")
        '连接sql
        Dim strSql As String = "server=" & server & ";uid=" & uid & ";pwd=" & pwd & ";database=master"

        Dim DataName As String = "BookManage"
        Dim strMdf As String = path & "/BookManage_Data.mdf"
        Dim strLdf As String = path & "/BookManage_Log.ldf"

        Me.CreateDataBase(strSql, DataName, strMdf, strLdf, path)
    End Sub
#End Region
End Class

End Namespace 

八).打包時加入卸载功能:

   1.在打包項目中添加文件msiexec.exe(一般可在c:/windows/system32/下找到)

2.在File System中选择Application Folder,在msiexec.exe上按右鍵,选择”Create Shortcut to msiexec.exe”,重命名快捷方式为"卸载".  

3.更改此快捷方式的Arguments 为"/x {產品id}",产品id的值为打包項目的ProductCode属性值. 

 

C#版:http://www.cnblogs.com/neozhu/archive/2007/02/24/654985.html

 

 

 

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie implementiert die Go-Sprache die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank? Wie implementiert die Go-Sprache die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank? Mar 27, 2024 pm 09:39 PM

Die Go-Sprache ist eine effiziente, prägnante und leicht zu erlernende Programmiersprache. Sie wird von Entwicklern aufgrund ihrer Vorteile bei der gleichzeitigen Programmierung und Netzwerkprogrammierung bevorzugt. In der tatsächlichen Entwicklung sind Datenbankoperationen ein unverzichtbarer Bestandteil. In diesem Artikel wird erläutert, wie die Go-Sprache zum Implementieren von Datenbank-Hinzufügungs-, Lösch-, Änderungs- und Abfrageoperationen verwendet wird. In der Go-Sprache verwenden wir normalerweise Bibliotheken von Drittanbietern, um Datenbanken zu betreiben, z. B. häufig verwendete SQL-Pakete, Gorm usw. Hier nehmen wir das SQL-Paket als Beispiel, um vorzustellen, wie die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank implementiert werden. Angenommen, wir verwenden eine MySQL-Datenbank.

Yolov10: Ausführliche Erklärung, Bereitstellung und Anwendung an einem Ort! Yolov10: Ausführliche Erklärung, Bereitstellung und Anwendung an einem Ort! Jun 07, 2024 pm 12:05 PM

1. Einleitung In den letzten Jahren haben sich YOLOs aufgrund ihres effektiven Gleichgewichts zwischen Rechenkosten und Erkennungsleistung zum vorherrschenden Paradigma im Bereich der Echtzeit-Objekterkennung entwickelt. Forscher haben das Architekturdesign, die Optimierungsziele, Datenerweiterungsstrategien usw. von YOLO untersucht und erhebliche Fortschritte erzielt. Gleichzeitig behindert die Verwendung von Non-Maximum Suppression (NMS) bei der Nachbearbeitung die End-to-End-Bereitstellung von YOLO und wirkt sich negativ auf die Inferenzlatenz aus. In YOLOs fehlt dem Design verschiedener Komponenten eine umfassende und gründliche Prüfung, was zu erheblicher Rechenredundanz führt und die Fähigkeiten des Modells einschränkt. Es bietet eine suboptimale Effizienz und ein relativ großes Potenzial zur Leistungsverbesserung. Ziel dieser Arbeit ist es, die Leistungseffizienzgrenze von YOLO sowohl in der Nachbearbeitung als auch in der Modellarchitektur weiter zu verbessern. zu diesem Zweck

Wie implementiert Hibernate polymorphe Zuordnung? Wie implementiert Hibernate polymorphe Zuordnung? Apr 17, 2024 pm 12:09 PM

Die polymorphe Hibernate-Zuordnung kann geerbte Klassen der Datenbank zuordnen und bietet die folgenden Zuordnungstypen: Joined-Subclass: Erstellen Sie eine separate Tabelle für die Unterklasse, einschließlich aller Spalten der übergeordneten Klasse. Tabelle pro Klasse: Erstellen Sie eine separate Tabelle für Unterklassen, die nur unterklassenspezifische Spalten enthält. Union-Unterklasse: ähnelt der verbundenen Unterklasse, aber die Tabelle der übergeordneten Klasse vereint alle Spalten der Unterklasse.

iOS 18 fügt eine neue Albumfunktion „Wiederhergestellt' hinzu, um verlorene oder beschädigte Fotos wiederherzustellen iOS 18 fügt eine neue Albumfunktion „Wiederhergestellt' hinzu, um verlorene oder beschädigte Fotos wiederherzustellen Jul 18, 2024 am 05:48 AM

Apples neueste Versionen der iOS18-, iPadOS18- und macOS Sequoia-Systeme haben der Fotoanwendung eine wichtige Funktion hinzugefügt, die Benutzern dabei helfen soll, aus verschiedenen Gründen verlorene oder beschädigte Fotos und Videos einfach wiederherzustellen. Mit der neuen Funktion wird im Abschnitt „Extras“ der Fotos-App ein Album mit dem Namen „Wiederhergestellt“ eingeführt, das automatisch angezeigt wird, wenn ein Benutzer Bilder oder Videos auf seinem Gerät hat, die nicht Teil seiner Fotobibliothek sind. Das Aufkommen des Albums „Wiederhergestellt“ bietet eine Lösung für Fotos und Videos, die aufgrund einer Datenbankbeschädigung verloren gehen, die Kameraanwendung nicht korrekt in der Fotobibliothek speichert oder eine Drittanbieteranwendung die Fotobibliothek verwaltet. Benutzer benötigen nur wenige einfache Schritte

Eine ausführliche Analyse, wie HTML die Datenbank liest Eine ausführliche Analyse, wie HTML die Datenbank liest Apr 09, 2024 pm 12:36 PM

HTML kann die Datenbank nicht direkt lesen, dies kann jedoch über JavaScript und AJAX erreicht werden. Zu den Schritten gehören das Herstellen einer Datenbankverbindung, das Senden einer Abfrage, das Verarbeiten der Antwort und das Aktualisieren der Seite. Dieser Artikel bietet ein praktisches Beispiel für die Verwendung von JavaScript, AJAX und PHP zum Lesen von Daten aus einer MySQL-Datenbank und zeigt, wie Abfrageergebnisse dynamisch auf einer HTML-Seite angezeigt werden. In diesem Beispiel wird XMLHttpRequest verwendet, um eine Datenbankverbindung herzustellen, eine Abfrage zu senden und die Antwort zu verarbeiten. Dadurch werden Daten in Seitenelemente gefüllt und die Funktion des HTML-Lesens der Datenbank realisiert.

Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Jun 04, 2024 pm 01:42 PM

So verwenden Sie MySQLi zum Herstellen einer Datenbankverbindung in PHP: MySQLi-Erweiterung einbinden (require_once) Verbindungsfunktion erstellen (functionconnect_to_db) Verbindungsfunktion aufrufen ($conn=connect_to_db()) Abfrage ausführen ($result=$conn->query()) Schließen Verbindung ( $conn->close())

So laden Sie den 360 Secure Browser auf Ihren Computer herunter So laden Sie den 360 Secure Browser auf Ihren Computer herunter Apr 12, 2024 pm 01:52 PM

Wie lade ich den 360 Secure Browser auf Ihren Computer herunter? Es handelt sich um eine sehr sichere Webbrowser-Software, die sehr funktionsreich und einfach zu bedienen ist. Viele Menschen nutzen diesen Browser sehr gut zum Surfen im Internet. Viele Menschen wissen jedoch immer noch nicht, wie sie den 360 Secure Browser herunterladen und auf ihren Computern installieren können. Dieser Artikel gibt Ihnen eine detaillierte Einführung in den Installationsprozess der 360 ​​Safe Browser-PC-Version und hofft, Ihnen bei der Lösung des Problems zu helfen. Überblick über den Installationsprozess unter der Computerversion von 360 Secure Browser 1. Suchen Sie auf der Hauptseite des Computers nach „360 Software Manager“ und geben Sie ein (wie im Bild gezeigt). 2. Öffnen Sie den 360 Software Manager und suchen Sie das Suchfeld (wie im Bild gezeigt). 3. Klicken Sie auf Suchen

Umgang mit Datenbankverbindungsfehlern in PHP Umgang mit Datenbankverbindungsfehlern in PHP Jun 05, 2024 pm 02:16 PM

Um Datenbankverbindungsfehler in PHP zu behandeln, können Sie die folgenden Schritte ausführen: Verwenden Sie mysqli_connect_errno(), um den Fehlercode abzurufen. Verwenden Sie mysqli_connect_error(), um die Fehlermeldung abzurufen. Durch die Erfassung und Protokollierung dieser Fehlermeldungen können Datenbankverbindungsprobleme leicht identifiziert und behoben werden, wodurch der reibungslose Betrieb Ihrer Anwendung gewährleistet wird.

See all articles