集成 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>
$0~$9、$R0~$R9 是 NSIS 二十个内置变量。1. Push X
将 X(变量或字符串都行)放入 NSIS 堆栈顶部。Pop 变量,将堆栈顶部值d出到 "变量"。如:
Push good
StrCpy $R0 bad
Pop $R0
MessageBox MB_OK $R0 #此时$R0为good
2. 读取注册表:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.5
键下的 Install 项的值,将结果保存在 $0 变量中。
3. StrCmp 值1 值2 相等时跳转标记 [不相等时跳转标记]。
相等时跳转标记/不相等时跳转标记可以是标记,也可以是+N或-N表示相对跳转。
StrCmp $0 1 KnowNetFrameworkVersion +1
$0为1,跳转到"KnowNetFrameworkVersion:"处,否则跳转+1即下一行。
StrCpy $1 "1.0.3705.0"
将字符串"1.0.3705.0"复制到$1变量。
(1) StrCmp $R0 0 good
#"不相等跳转标记"是可选的,你可以留空不写或写0或+1都一样表示到下一句。
...
...
good:
(2) StrCmp $R0 0 +2 +4
#如果该行是有效的语句则被跳过。注意:注释不算语句,此处仅作示范,下同。
#$R0为0则跳到此行
Goto +2 #跳过下一行到下下一行
#$R0不为0则跳到此行
也可以标记与相对跳转混合使用:
(3) StrCmp $R0 0 0 end
...
#N行语句,不确定行数或行数太多。
...
end:
4."$TEMP"是临时文件夹。如果当前为Administrator用户,其典型路径如下:
XP/2000:C:\Documents and Settings\Administrator\Local Settings\Temp
Vista/7:C:\Users\Administrator\AppData\Local\Temp
常见的路径变量有:
桌面:$DESKTOP
Windows目录:$WINDIR
系统目录:$SYSDIR
开始菜单:$STARTMENU
开始菜单中的程序:$SMPROGRAMS
我的文档:$DOCUMENTS
…………
以上命令说明都可以在NSIS中文帮助中找到。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)