您的位置:首页 > 其它

【转】NET 制作有DB安装功能的安装文件

2009-01-13 09:13 267 查看

前段时间做一个项目,因为其中数据库有许多数据是初始化的数据, 为了便于部署.于是我在制作安装程序的时候加入了 DB install的功能.

首先最好单独创建一个DB install 的Class Library的Project.

File NewProjectVisual C#  WindowsClass Library

然后创建一个class, 命名为DBInstall.cs. 下面就是如何在这个class 中实现DB"安装"的过程.

首先需要将 DBInstall 继承 Installer class. 还需要加上[RunInstaller(true)]的attribute.

[RunInstaller(true)]

public partial class DBInstall : Installer

此时图标会由变为, 说明这个class 已经成为了安装的组件了.

然后就是 override Rollback, Uninstall, Install 三个方法:

public override void Rollback(System.Collections.IDictionary savedState)
2
3
39
40
41 public override void Uninstall(System.Collections.IDictionary savedState)
42
43

public override void Install(System.Collections.IDictionary stateSaver)

上面描述了自定义安装的初步过程.

2
3private string LoadSqlFromAssembly(string Name)
4
5

private void ExecuteSql(string DatabaseName, string Sql)

下面描述下LoadSqlFromAssembly 和 ExecuteSql两个方法:

自此在上面DBInstall的Project已经全部实现完毕.还需要在安装部署中添加这个DBInstall.

创建一个Setup Project(File NewProjectOther Project Type Setup and DeploymentSetup Project,然后再刚创建号的

Setup project点击右键, 点击"添加", 选择Project Output,在Project 选择刚已经完成的DBInstall, 然后点击 Primary output.

然后点击"确定".

然后再在Setup Project上面点击右键, 点击"View""Custom Actions",会弹出一个窗口

然后在窗口中依次在Install, Rollback, Uninstall 三个文件夹上面创建 一个Action.

方法如下:

在文件夹上面点击右键,然后点击"Add Custom Action", 再弹出窗口里面选择Application Folder.

选择刚才创建的一个DBInstall的Primary Output .

然后点击"确定".

注意一定要在Install, Rollback, Uninstall 都添加 "Primary output from DBInstall(Active)".

只有这样,我们在DBInstall中override的 Rollback, Uninstall才会有意义.

然后编译setup project, 得到安装文件,双击安装.

PS: 有时候大家生成的脚本在sql里面执行的正常, 但是在安装过程中会出现 "Create 附近有错误"类似的错误,

请大家去掉sql文件里面的"GO". 就可以一切正常了.

如果大家有更好的办法, 请多多指教! 谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: