Just do it

Stay hungry, Stay foolish
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

.NET 制作有DB安装功能的安装文件

Posted on 2009-01-12 16:11  YB  阅读(2295)  评论(7编辑  收藏  举报

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

   

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

File NewProjectVisual C# WindowsClass Library

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

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

 

继承

 

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

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

 

Override Install Method

 

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

Read Sql and Execute Sql

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

 

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

   

创建一个Setup Project(File NewProjectOther Project Type Setup and DeploymentSetup 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". 就可以一切正常了.

   

如果大家有更好的办法, 请多多指教! 谢谢!

 

 谢谢各位的捧场,应大家要求,我写了一个简单的DB安装的程序供大家参考.

有什么好的意见和建议,请大家不吝赐教.

带DB安装功能的源码 : DBInstallSolution