NSIS打包的程序中加入数据库服务

NSIS打包的程序中加入数据库服务,第1张

你可以检测用户是否已经安装 Oracle 和 .NET,如果没有安装,则安装程序就不启动。

集成 Oracle 和 .NET 是不现实的,除非你的软件本身也非常巨大,或者提供了安装光盘,将 Oracle 和 .NET 都放在里面。Oracle 可能需要手动安装。我没用过,我猜测是使用 Install shield 打包。如果要集成,你需要知道静默安装参数。时间太久用户可能不愿意等待,所以还是建议启动让用户手动安装。可使用 NSIS 提供的插件 Service 检测 Oracle 相关服务确实 Oracle 是否安装。服务名称你自己去搞定:

<a href=" http://nsis.sourceforge.net/Services_plug-in" target="_blank">http://nsis.sourceforge.net/Services_plug-in</a>

services::IsServiceInstalled 'MyServiceName'

Pop $0

$0 now contains either 'Yes', 'No' or an error description

官方关于检测和安装 .NET Frameword 的参考代码:

<a href=" http://nsis.sourceforge.net/Detect_and_download_the_.NET_framework." target="_blank">http://nsis.sourceforge.net/Detect_and_download_the_.NET_framework.</a>

<a href=" http://nsis.sourceforge.net/Simple_Way_To_Install_.NET_Framework" target="_blank">http://nsis.sourceforge.net/Simple_Way_To_Install_.NET_Framework</a>

<a href=" http://nsis.sourceforge.net/Installing_the_Microsoft_.NET_Framework" target="_blank">http://nsis.sourceforge.net/Installing_the_Microsoft_.NET_Framework</a>

<a href=" http://nsis.sourceforge.net/How_to_Automatically_download_and_install_a_particular_version_of_.NET_if_it_is_not_already_installed" target="_blank">http://nsis.sourceforge.net/How_to_Automatically_download_and_install_a_particular_version_of_.NET_if_it_is_not_already_installed</a>

NSIS--基于脚本的安装程序- -

“NSIS (Nullsoft Scriptable Install System) 是 Windows 下的一个工具,它允许程序员

来创建这样的安装程序。它发布于一个开源的协议并且对于任何使用来说都是完全免费的。”

--NSIS用户手册

Foobar是我听听音乐的工具,而且使用了Winamp那么长时间了,对Nullsoft非常熟悉,但是

可能是由于整个公司的软件开放程度不高吧,具体它有些什么特长的东西一直不清楚。所以第

一次听说有一个NSIS的东西可以方便灵活的定制安装程序,是Nullsoft退出的,我还有些惊讶。

“NSIS 创建的安装程序能够安装、卸载、设置系统设置、解压文件等等。因为它基于脚本文

件,你可以完全的控制安装程序的每一部分。脚本语言支持变量、函数、字串 *** 作,就像一个

普通的程序语言一样 - 但是设计来创建安装程序。即使有那么多的特性,NSIS 仍然是最小的

安装程序系统。在默认选项下,它仅增加了 34 KB 的开销。”--NSIS用户手册

不过看到NSIS.sourceforge.net的若干图标,一下子我就想起来了,原来好多的软件都使用

它制作安装程序,特别是那个带一个向下箭头的圆球图标老是出现在开源软件的安装程序中。

结果我都不知道这个东西,是在是有些不好意思了。

说起来要学习制作一个基于NSIS的安装程序可不是一个小时就可以的事情(恐怕要两个小时 ),

因为制作一个安装程序需要学习NSIS的脚本编写,这基本上就是一门新的语言,是有一定

难度的。我自己的感觉是这种脚本语法简单,结构清除,由于使用了插件的方式扩展,功能相

当的强大(网络上有不少各式各样的插件,自己也可以方便的编写)。如果运用熟练几乎可以

随心所欲的 *** 控安装程序,文件,网络以及 *** 作系统等等。而编写简单的安装程序更是手到擒

来,比如下面的一段相信大家一看就知道要做什么了。

---一个简单的安装程序

#

# 定义产品的信息,供以后程序使用

#

!define PRODUCT_NAME "TestSetup"

!define PRODUCT_VERSION "1.0"

!define PRODUCT_PUBLISHER "My company, Inc."

!define PRODUCT_WEB_SITE "http://www.mycompany.com"

!define PRODUCT_SERIAL_NUMBER "123" 序列号

!define TEMP_SN $R0 处理序列号对话框中用到的临时变量

#

# 显示的各个页面定义

#

Page license # 许可声明显示页

Page components # 选择安装组件

Page directory# 指定安装目录

Page instfiles# 安装拷贝显示页

#

# 设置总体的信息

#

Name "${PRODUCT_NAME} ${PRODUCT_VERSION}"

OutFile "${PRODUCT_NAME}-${PRODUCT_VERSION}.exe"

ShowInstDetails show

InstallDir "d:\tmp"

LicenseData "readme.txt"

# 我在这里默认只支持中文方式的安装

LoadLanguageFile "${NSISDIR}\Contrib\Language Files\SimpChinese.nlf"

#

# 各个段的详细定义(根据选择组件,执行各个区段)

#

Section "说明文件"

SetOutPath "$INSTDIR" # 将这里的文件安装到目标目录中。

SetOverwrite ifnewer

File "license.txt" "readme.txt"

SectionEnd

Section "正文"

SetOutPath "$INSTDIR" # 将这里的文件安装到目标目录中。

SetOverwrite ifnewer

File "About NSIS.txt"

DetailPrint "正文安装结束了!"

SectionEnd

----程序结束

像是上面这样的一个简单脚本也许就可以满足很多人的要求了,而许多商业安装程序工具生

成的结果也不过如此,可见NSIS这个开源的工具还是非常强大的,怪不得好多著名的软件都使

用它制作自己的安装程序(参见nsis的users)。在NSIS的Wiki上有好多非常实用的脚本和插

件供人们下载使用,论坛内的讨论也非常切入要害。更加难能可贵的是NSIS支持中文的程度非

常的高,国内不少有志人士为了这个东西作出了巨大贡献。所以文档和软件全部都有中文版本

,而像HM-NIS Edit这样的NSIS脚本编辑软件也是也从源代码级别进行了汉化,使用中完全没

有语言的障碍。

什么数据库

Access数据库

就很简单了,直接与程序文件一起打包就好了。

SQL

Server麻烦点,你可以这样做:

(1)单独编写一个数据库安装的C#程序,在数据库

安装程序

中使用SQL

Server内置函数sp_attach_db执行数据库安装 *** 作。部分代码示例如下:

connstring

=

"Data

Source="

+

TextBoxServer.Text

+

"Integrated

Security=SSPIInitial

Catalog=masterUser

ID="

+

TextBoxUserName.Text

+

"Password="

+

TextBoxPwd.Text

string

DbPath

=

System.Environment.CurrentDirectory

+

@"\Database\TicketMan.mdf"

string

LogPath

=

System.Environment.CurrentDirectory

+

@"\Database\TicketMan_log.ldf"

string

StrSql

=

"exec

sp_attach_db

@dbname='TicketMan',@filename1='"

+

DbPath

+

"',@filename2='"

+

LogPath

+

"'"

(2)

将数据库MDF、LDF文件与软件主程序文件、数据库

安装程序

文件等一起打包。

不知道你使用的哪种打包软件,如果是NSIS的话,在NSIS脚本的安装完成页面运行数据库

安装程序

。例如:!define

MUI_FINISHPAGE_RUN

"$INSTDIR\数据库安装.exe"

-----------------------------------------------------------------------------

方法不止一种,以上只是列举一种方法而已。


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

原文地址:https://54852.com/sjk/6933154.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存