search
HomeDatabaseMysql TutorialVS2010(英文版)打包部署自动安装数据库
VS2010(英文版)打包部署自动安装数据库Jun 07, 2016 pm 03:29 PM
vs2010InstallPackdatabaseautomaticEnglish versiondeploy

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

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

下面我来为大家介绍一种方法:在打包程序时将数据库一起打包,这样安装程序的时候会自动附加数据库(前提是该电脑上有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

 

 

 

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
分享PyCharm项目打包的简易方法分享PyCharm项目打包的简易方法Dec 30, 2023 am 09:34 AM

简单易懂的PyCharm项目打包方法分享随着Python的流行,越来越多的开发者使用PyCharm作为Python开发的主要工具。PyCharm是功能强大的集成开发环境,它提供了许多方便的功能来帮助我们提高开发效率。其中一个重要的功能就是项目的打包。本文将介绍如何在PyCharm中简单易懂地打包项目,并提供具体的代码示例。为什么要打包项目?在Python开发

如何使用Python正则表达式进行代码打包和分发如何使用Python正则表达式进行代码打包和分发Jun 23, 2023 am 09:31 AM

随着Python编程语言的日益流行,越来越多的开发者开始使用Python编写代码。但是在实际使用中,我们常常需要将这些代码打包并分发给其他人使用。本文将介绍如何使用Python正则表达式进行代码打包和分发。一、Python代码打包在Python中,我们可以使用setuptools和distutils等工具来打包我们的代码。这些工具可以将Python文件、模块

怎么使用pkg将Node.js项目打包为可执行文件?怎么使用pkg将Node.js项目打包为可执行文件?Jul 26, 2022 pm 07:33 PM

如何用pkg打包nodejs可执行文件?下面本篇文章给大家介绍一下使用pkg将Node.js项目打包为可执行文件的方法,希望对大家有所帮助!

win10英文版和中文版区别win10英文版和中文版区别Jan 04, 2024 pm 12:49 PM

Win10英文版与中文版的主要差别,就在于语言界面以及预装的应用程序不同。英文版的界面是英文的,预装的应用程序也全是英文的;中文版的界面则是中文的,预装的应用程序也都是用中文来操持的。除了这些,两个版本的功能和操作其实都是一模一样的。win10英文版和中文版区别:1、语言:英文版的Windows10中,英语会作为默认语言出现,而在中文版的Windows10里,中文则被设定为默认语言。这就是说,当我们安装完成之后,用户将会看到系统界面、菜单、对话框、错误提示等都以不同的语言呈现。2、预装应用程序:

谷歌浏览器变成英文版看不懂怎么办?谷歌浏览器英文版改为中文版谷歌浏览器变成英文版看不懂怎么办?谷歌浏览器英文版改为中文版Mar 13, 2024 pm 04:46 PM

  谷歌浏览器是谷歌公司开发的网页浏览器,是目前最为主流的浏览器之一,有用户发现自己的谷歌浏览器有天变成了英文版,完全看不懂,这是怎么回事?如果你也遇到了这个问题,可以试试下面的办法将英文版改成中文版。  谷歌浏览器调回中文版的方法:  1、找一个是中文的谷歌浏览器Chrome重新装一下。  2、更改重新设置浏览器的语言。  ①首先点击右上角的“三点”进入,然后点击Settings进入设置页面;  ②在设置里面翻到最下面,点击Advanced高级设置;  ③在下面Languages

linux打包是什么意思linux打包是什么意思Feb 23, 2023 pm 06:30 PM

在linux中,打包指的是一个文件或目录的集合,而这个集合被存储在一个文件中;简单来说,打包是指将一大堆文件或目录变成一个总的文件。打包文件没有经过压缩,因此它占用的空间是其中所有文件和目录的总和。

Python 应用的独立宣言:PyInstaller 的自由之路Python 应用的独立宣言:PyInstaller 的自由之路Feb 20, 2024 am 09:27 AM

PyInstaller:Python应用的独立化PyInstaller是一款开源的python打包工具,它将Python应用程序及其依赖项打包为一个独立的可执行文件。这一过程消除了对Python解释器的依赖,同时允许应用程序在各种平台上运行,包括windows、MacOS和linux。打包过程PyInstaller的打包过程相对简单,涉及以下步骤:pipinstallpyinstallerpyinstaller--onefile--windowedmain.py--onefile选项创建一个单一

Python 应用的终极进化:PyInstaller 的破茧成蝶Python 应用的终极进化:PyInstaller 的破茧成蝶Feb 19, 2024 pm 03:27 PM

PyInstaller是一个革命性的工具,它赋予python应用程序以超越其原始脚本形态的能力。通过将Python代码编译成独立的可执行文件,PyInstaller解锁了代码分发、部署和维护的新境界。从单一脚本到强大应用程序以往,Python脚本只存在于特定的Python环境中。分发这样的脚本需要用户安装Python和必要的库,这是一个费时且繁琐的过程。PyInstaller引入了打包的概念,将Python代码与所有必需的依赖项组合成一个单独的可执行文件。代码打包的艺术PyInstaller的工

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

Hot Tools

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

Powerful PHP integrated development environment

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.