C#项目打包,并自动安装SQL数据库[3]

C#项目打包,并自动安装SQL数据库[3],第1张

  六) 打包时加入卸载功能

方法一

在打包项目中添加文件msiexec exe(一般可在c \windows\system \下找到)  在文件系统视图中选择应用程序文件夹 在msiexec exe上按右键 选择创建快捷方式 重命名快捷方式为 卸载 更改此快捷方式的Arguments 为 /x {产品id} 产品id的值为打包项目的ProductCode属性值  方法二 (推荐)  先生成安装包 记下ProductCode(选择解决方案资源管理器根目录如setup 再查看属性标签 不是右键中的属性) 下面要用到

用VS net建立一个新的控制台程序uninst exe文件 power by landlordh for xp Module uninstall Sub Main() Dim myProcess As Process = New Process If System Environment OSVersion ToString IndexOf( NT ) Then myProcess Start( msiexec /X{ B D A C AB B FB } ) 改为自己的ProductCode End If myProcess Close() End Sub End Module 将控制台程序BIN目录的exe文件加入到打包程序文件中 在程序组创建uninst exe的快捷方式附 installdb vb类 要添加引用 system configuration install dll Imports System ComponentModel Imports System Configuration Install Public Class Installer Inherits System Configuration Install Installer #Region 组件设计器生成的代码 Public Sub New() MyBase New()  该调用是组件设计器所必需的  InitializeComponent()  在 InitializeComponent() 调用之后添加任何初始化End Sub Installer 重写 dispose 以清理组件列表  Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean) If disposing Then If Not (ponents Is Nothing) Then ponents Dispose() End If MyBase Dispose(disposing) End Sub 组件设计器所必需的Private ponents As System ComponentModel IContainer 注意 以下过程是组件设计器所必需的 可以使用组件设计器来修改此过程   不要使用代码编辑器来修改它  Private Sub InitializeComponent() ponents = New System ComponentModel Container End Sub #End Region Public Overrides Sub Install(ByVal stateSaver As System Collections IDictionary) MyBase Install(stateSaver) If Not InstallDB() Then 失败 反安装Me Uninstall(stateSaver) Exit Sub End If DeleteFile(String Format( { }DB dat Me Context Parameters Item( targetdir ))) End Sub Public Overrides Sub Uninstall(ByVal stateSaver As System Collections IDictionary)

lishixinzhi/Article/program/net/201311/15204

打包数据库到安装程序中

方法1. 备份/恢复

先备份数据库:

backup database 数据库 to disk='c:\备份.bak'

将备份文件打包到安装程序中.

在第一次运行程序的时候,进行数据库恢复(或专门做一个系统配置的程序,来控制完成此工作)

restore database 数据库 from disk='c:\备份.bak'

方法2. 分离/附加

先分离数据库:

sp_detach_db '数据库名'

将数据文件(.mdf)和日志文件(.ldf)打包到安装程序中

在第一次运行程序的时候,进行数据库附加(或专门做一个系统配置的程序,来控制完成此工作)

sp_attach_db '数据库名','数据文件名(.mdf)','日志文件名(.ldf)'

方法3. 用数据库脚本

生成数据库脚本:

sql200企业管理器

--右键要导出的数据库

--所有任务

--生成SQL脚本

--<常规>里选择"生成全部对象脚本"","在脚本文件中包含说明性标题"选上

--<设置格式>里,将"包含扩展属性",选上

--<选项>中,将"表脚本选项"中的内容全部选择上

--<选项>中,"安全性选项"是决定是否要包含创建数据库及用户权限等的设置,根据你的需要选择

--其他所有的选项保持默认值

--然后确定,将其保存成一个.sql文件

生成数据脚本(借用第三方工具):

SQL Server 数据库SQL脚本导出器1.0

(1) 支持所有数据类型(如binary,text,image)

(2) 支持表结构、索引、所有记录到SQL脚本

(3) 支持数据库、表的浏览

(4) SQL语句的编辑、执行

(5) 可备份数据库、表结构、记录

将脚本文件打包到安装程序中.

在第一次运行程序的时候,执行脚本(或专门做一个系统配置的程序,来控制完成此工作),通过调用isql.exe文件完成.

exec master..xp_cmdshell 'isql /E /i".sql文件"'

也可以直接在程序中调用isql.exe文件.或直接将isql.exe文件集成到程序安装包中

很明确的。

=================================================================

补充

=================================================================

你的sql文件里要先创建数据库,然后再创建表,创建表的时候要往该数据库里创建表。

1、用户当然要装sql

server,否则数据库里的键、索引、约束等等谁来维护?2、mdf文件可以分离打包(数据库分离),但是更建议将数据库以sql文档或者是xml文档的形式输出,具体做法看一下联机文档就可以了,简单得很。3、自己写一个数据初始化的小程序打进安装包里,基本安装后执行一下就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/9952864.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存