Just do it

Stay hungry, Stay foolish
随笔 - 4, 文章 - 0, 评论 - 24, 阅读 - 6052
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

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

Posted on   YB  阅读(2296)  评论(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

 

编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
点击右上角即可分享
微信分享提示