用NextInstaller制做安装盘及数据库Pack

Windows上Qt/C++应用安装包制作 为什么要制作安装包,是产品需求,还是让应用安装更简单?本文将结合一些流行的安装包制作工具和自定义方法,为你提供完整的参考。并就windows上经常遇到的exe依赖dll丢失问题,提供详尽的问题场景和解决思路,帮助你更顺利的制作安装包。为了更好的定制安装包,在实际项目中我们使用了MFC来开发安装、卸载程序。定制包括两方面,UI和安装流程。UI对于不同项目,可能差异较大,安装流程却是业界通用的。在这里,我简单介绍下一般定制安装包需要实现哪些核心步骤,及其负责的功能。 阅读详情
功能说明:安装盘在安装过程中判断当前数据库的版本号,如果版本号少于当前安装盘的版本号,则升级数据库。

1.判断当前数据库的版本号

function void OnProcess()
{
var int    nNewDBVer;
var int  nDBVer;
var int  nDBType;
var int  nDBLoginMode;
var string strDBFile;
var string  strDBName;
var string  strDBPassword;
var string  strDBServer;
var string  strDBUser;
var CRegKey MyKey;
       
nNewDBVer  = 24602;
nDBVer = MyKey.GetRegDWordValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE//MyApp" , "DBVer" , 0 );
nDBType = MyKey.GetRegDWordValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBType" , 0 );
strDBFile = MyKey.GetRegStrValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBFile" , "" );
nDBLoginMode  = MyKey.GetRegDWordValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBLoginMode" , "" );
strDBName = MyKey.GetRegStrValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBName" , "" );
strDBPassword = MyKey.GetRegStrValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBPassword" , "" );
strDBServer  = MyKey.GetRegStrValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBServer" , "" );
strDBUser = MyKey.GetRegStrValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBUser" , "" );
// 如果老的版本事情少于当于安装盘的数据库版本号,则设置 UpdateDB 为 1
// 表示要升级数据库存
    if( nDBVer < nNewDBVer )
    {
      if( ( nDBType == 0 && strDBFile != "" ) ||(nDBType == 1 && strDBName != "" ) )
      {
      Install.SetVarTabValue( "UpdateDB" ,"1" );
      Install.SetVarTabValue( "VAR_S_DBTYPE" ,nDBType );
      Install.SetVarTabValue( "VAR_S_DBFILE" ,strDBFile );
      Install.SetVarTabValue( "VAR_S_DBNAME" ,strDBName );
      Install.SetVarTabValue( "VAR_S_DBLOGINMODE" ,nDBLoginMode );
      Install.SetVarTabValue( "VAR_S_DBSERVER" ,strDBServer );
      Install.SetVarTabValue( "VAR_S_DBUSER" ,strDBUser );
      }
}
Install.SetVarTabValue( "DBVer" ,nNewDBVer );
Install.DoDialog( "SdProcess" );
}

2.设置升级数据XML 的执行条件,系统中有一个 UpdateTab 的 XML, 并设置这个 XML 的执行条件 Condition 与 UpdateDB 这个变量进行关系,如相这个变量值是 1 , 表示条件成立,则执行这个XML, 如果值为 0, 则条件不成立,XML 不执行。


3.创建升级数据库库的 XML 数据
选择 [工具]->[数据库信息倒入/到出] 生成更新数据库的 XML 信息。


4.把最新的数据库版本号写到注册表中
把 Software/Myapp 下的 DBVer 与变量表中的变量 DBVer 进行关联,则我们中只要在脚本中设置这个变量值,就可以把这个值写到注册表中。
Install.SetVarTabValue( "DBVer" ,nNewDBVer );


5.End

完整的例子:
ar string  @sTargetPath;
var string  @sDataPath;
var string  @sFilePath;
var CValueSet  DlgParam;
var int  nOpType;
function void OnBegin()
{
if( Install.IsInstalled() == 0 )
  FirstInstall();
else
  UpdateInstall();
}
function void FirstInstall()
{
  SdWelcome:
    nOpType = Install.DoDialog( "SdWelcome" );
    DataCmpGoto( nOpType , OT_CANCEL ,"Cancel" );
  SdSetDestPath:
    nOpType = Install.DoDialog( "SdSetDestPath" );
    DataCmpGoto( nOpType , OT_CANCEL ,"Cancel" );
    DataCmpGoto( nOpType , OT_BREAK  ,"SdWelcome" );
  Cancel:
}
function void UpdateInstall()
{
    DlgParam.SetValue("SetupModes" , "SM_REPAIR|SM_REMOVE" );
    nOpType = Install.DoDialog( "SdSetupMode" , DlgParam );
}
function void OnProcess()
{
var int    nNewDBVer;
var int  nDBVer;
var int  nDBType;
var int  nDBLoginMode;
var string strDBFile;
var string  strDBName;
var string  strDBPassword;
var string  strDBServer;
var string  strDBUser;
var CRegKey MyKey;
       
nNewDBVer  = 24602;
nDBVer = MyKey.GetRegDWordValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE//MyApp" , "DBVer" , 0 );
nDBType = MyKey.GetRegDWordValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBType" , 0 );
strDBFile = MyKey.GetRegStrValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBFile" , "" );
nDBLoginMode  = MyKey.GetRegDWordValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBLoginMode" , "" );
strDBName = MyKey.GetRegStrValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBName" , "" );
strDBPassword = MyKey.GetRegStrValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBPassword" , "" );
strDBServer  = MyKey.GetRegStrValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBServer" , "" );
strDBUser = MyKey.GetRegStrValue( "HKEY_LOCAL_MACHINE" , "SOFTWARE// MyApp " , "DBUser" , "" );
    if( nDBVer < nNewDBVer )
    {
      if( ( nDBType == 0 && strDBFile != "" ) ||(nDBType == 1 && strDBName != "" ) )
      {
      Install.SetVarTabValue( "UpdateDB" ,"1" );
      Install.SetVarTabValue( "VAR_S_DBTYPE" ,nDBType );
      Install.SetVarTabValue( "VAR_S_DBFILE" ,strDBFile );
      Install.SetVarTabValue( "VAR_S_DBNAME" ,strDBName );
      Install.SetVarTabValue( "VAR_S_DBLOGINMODE" ,nDBLoginMode );
      Install.SetVarTabValue( "VAR_S_DBPASSWORD" ,strDBPassword );
      Install.SetVarTabValue( "VAR_S_DBSERVER" ,strDBServer );
      Install.SetVarTabValue( "VAR_S_DBUSER" ,strDBUser );
      }
}
Install.SetVarTabValue( "DBVer" ,nNewDBVer );
Install.DoDialog( "SdProcess" );
}
function void OnEnd()
{
var string strPath;
if( Install.GetSetupState() == SS_INSTALL )
{
  if( Install.GetSetupMode() == SM_REPAIR )
  {
  Install.StartService( "MyServer" );
  }
  Install.DoDialog( "SdFinish" );
 
  if( Install.UpdateModeStr != "SM_REPAIR" )
  {
  strPath = Install.GetPath("PATH_S_TARGETDIR");
  strPath = strPath + "[url=file:////help//MyAppHelp.chm]//help//MyAppHelp.chm[/url]";
  Install.ShellExec( strPath );
  }
    }
    else if( Install.GetSetupState() == SS_INSTALL_REBOOTDO )
    Install.DoDialog( "SdRebootDo" );
}
Nextinstaller NextInstaller 是一个类似于InstallShield 的功能强大的安装盘制作工具,在很多实用性的功能, 细节上比InstallShield更加方便.<br/>主要特征 : <br/>1.可以制作简单过程控制的安装盘,无需组件环境<br/>2.采用专业的 AtSctipt 和 VBScript 脚本引擎,同时支持简易的.ini引擎<br/>3.可以制作数据库安装盘 <br/>4.可以制作Web程序的安装盘<br/>3.可以制作程序补丁<br/>5.可以制作数据库补丁,支持数据库的更新( DBXML ) <br/>7.可以不生成反安装信息 <br/>8.可以方便的让一个应用程序和一种文件类型进行关联 <br/>9.可以方便生成反安装快捷键 <br/>10.功能强大的变量表,用户更方便得进行变量管理 <br/>11.因为采用VBScript 进行过程控制,所以很方便的加入自定义的组件,对安装界面,功能进行扩展 <br/>12.强大的应用检测功能,可以在安装过程对正在运行的程序,服务进行提示,强行中止 <br/>13.用户可以更方便的定义自己的安装类型 <br/>14.方便的图片更换功能用户可以方便的设计自定义的安装图片 立即下载

相关推荐

Windows安装包制作工具NextInstaller4.08.zip

一、NextInstaller是一个功能强大的安装盘制作工具 1.可以制作C/S应用软件安装盘。 2.可以制作软件升级包。 3.可以制作数据库安装盘。 4.可以制作数据库升级包。 5.可以制作Web安装盘(asp,.net,jsp,php…)。 二、使用方法与当前流行的InstallShell安装盘制作工具类似,但其使用方法非常简单,在某些方面功能更灵活方便 1.使用Atscript语言作为安装控制脚本,使用方便、简单,功能强大。 2.在脚本的招待过程中可以调用VBScript进行过程控制,使得系统更加灵活,更易于扩展(目前系统中所提供WEB安装盘制作模版就是调用VBScript进行IIS配置)。 3.制作的安装盘可以不生成反安装信息,可以应用与制作软件升级包、数据库安装盘等一些特殊的安装盘。 4.注册表设置功能可以方便地设置在安装过程中对注册表的操作,如:设置注册表信息、读出注册表信息、删除注册表信息、覆盖注册表信息、有条件地执行注册表对象、可以方便的让一个应用程序和一种文件类型进行关联。 5.可以方便生成反安装快捷键 6.功能强大的变量表,用户更方便得进行变量管理。 7.强大的应用检测功能,可以在安装过程对正在运行的程序,服务进行提示,强行中止。 8.用户可以更方便的定义自己的安装类型。 9.方便的图片更换功能用户可以方便的设计自定义的安装图片。

NextInstaller4.08 介绍

NextInstaller是一个功能强大的安装盘制作工具 可以制作C/S应用软件安装盘。 可以制作软件升级包。 可以制作数据库安装盘。 可以制作数据库升级包。 可以制作Web安装盘(asp,.net,jsp,php…)。 使用方法与当前流行的InstallShell安装盘制作工具类似,但其使用方法非常简单,在某些方面功能更灵活方便 使用Atscript语言作为安装控制脚本,使用方...

qq_38404726的博客 503

nextinstaller 3.92

简单的安装程序打包程序,使用非常简单,自带教程,适合简单的应用程序打包

如何用 NextInstaller 在一个Project中支持多个语言的安装盘

要在一个Project 中支持生成多个 语言的安装盘主要实现以下几点1.生成多个Media 分别对应多个语言2.实生系统的界面分别为相应的语言     在相应的Mide属性中选择相对应的 Language3.在安装中出现的自定义文本分别为相应的语言    a.在所有出现自定义文本的地方都用变量来取代,    b.在project 中分别建立不同的StrTable 让

jonfei的专栏 835

如何修改一个安装包的图标

 使用 Nextinstaller 制作安装包,可以很方便的修改安装包的图标,其方法是如下     1. 在当前 Media 上点右键,设置 properties               2. 在 Icon File中选择 icon 文件            

mfclp的专栏 3785

java添加图片水印工具类

常见文件添加水印工具类

qq_41819038的博客 1583

java实现图片添加水印工具类

【代码】java实现图片添加水印工具类。

bthdnj的博客 318

java 水印 居中_Java 代码添加水印工具类

package cn.tempus.archive.util;import com.itextpdf.text.BaseColor;import com.itextpdf.text.Element;import com.itextpdf.text.Image;import com.itextpdf.text.pdf.*;import javax.imageio.ImageIO;import jav...

weixin_32271623的博客 650

java图片加水印上传工具类,关于java:Java实现图片水印工具类

一点睛给图片加水印是一种常见的防伪技术,在此提供一个图片水印工具类。二代码package com.imooc.demo.common.util;import javax.imageio.ImageIO;import javax.swing.*;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;im...

weixin_31263231的博客 208

JAVA图片加水印工具类

图片加水印工具类 参考网上的资源写的图片加水印工具类,支持特定位置加水印和预设位置加水印,支持文字和图片水印,支持水印缩放、水印旋转 1.工具类 public class WaterMaskImgUtils{ /** * <p>Discription:[水印要缩小多少倍相对于被加水印的图片]</p> */ public static double SCALE_OF_WATER_MARK=-1D; /** *

OnlyOneWildChild的博客 635

NextInstaller3.0

NextInstaller是一个简单的安装包制作工具. 支持windows系统的安装包制作,可注册动态库,支持安装到不同路径,支持数据库升级.

NextInstaller 安装盘制作

一、NextInstaller是一个功能强大的安装盘制作工具 1.可以制作C/S应用软件安装盘。 2.可以制作软件升级包。 3.可以制作数据库安装盘。 4.可以制作数据库升级包。 5.可以制作Web安装盘(asp,.net,jsp,php…)。 二、使用方法与当前流行的InstallShell安装盘制作工具类似,但其使用方法非常简单,在某些方面功能更灵活方便 1.使用Atscript语言作为安装控制脚本,使用方便、简单,功能强大。 2.在脚本的招待过程中可以调用VBScript进行过程控制,使得系统更加灵活,更易于扩展(目前系统中所提供WEB安装盘制作模版就是调用VBScript进行IIS配置)。 3.制作的安装盘可以不生成反安装信息,可以应用与制作软件升级包、数据库安装盘等一些特殊的安装盘。 4.注册表设置功能可以方便地设置在安装过程中对注册表的操作,如:设置注册表信息、读出注册表信息、删除注册表信息、覆盖注册表信息、有条件地执行注册表对象、可以方便的让一个应用程序和一种文件类型进行关联。 5.可以方便生成反安装快捷键 6.功能强大的变量表,用户更方便得进行变量管理。 7.强大的应用检测功能,可以在安装过程对正在运行的程序,服务进行提示,强行中止。 8.用户可以更方便的定义自己的安装类型。 9.方便的图片更换功能用户可以方便的设计自定义的安装图片。 三、NextInstaller有方便灵活的事件控制方式 1.安装过程控制 <img height="439" alt="" width="476" src="http://www.atopsoft.net/Images/install.gif" /> 2.反安装过程控制 <img height="458" alt="" width="531" src="http://www.atopsoft.net/Images/uninstall.gif" /> 相关软件:http://www.atopsoft.net/NextInstaller.zip 相送界面:http://www.atopsoft.net/images/NextInstaller.jpg 相关网站:http://www.atopsoft.net/ 相关论坛:http://www.atopsoft.net/Forum/showforum-2.aspx 相关模版:用NextInstaller制做B/S 系统的安装盘NextInstaller制做安装盘数据库Pack

WinRAR 3.92简体中文注册版(破解版),带注册说明

WinRAR 3.92简体中文注册版(破解版),带有注册说明!

Java 实现 文档 添加 水印 工具类

【代码】Java 实现 文档 添加 水印 工具类。

MR.骑士道 1534

JAVA 水印工具类

摘自网络 import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; import java.awt.RenderingHints; imp...

weixin_33682719的博客 91

java 去掉图片水印文字_Java实现图片水印工具类

一点睛给图片加水印是一种常见的防伪技术,在此提供一个图片水印工具类。二代码package com.imooc.demo.common.util;import javax.imageio.ImageIO;import javax.swing.*;import java.awt.*;import java.awt.image.BufferedImage;import java.io.File;im...

weixin_35173655的博客 793

java 生成水印图片工具类, MultipartFile接收上传的图片,处理成加水印之后的MultipartFile

/** * Created by Administrator on 2018/4/26. * JAVA图片处理工具 */ public class ImageUtil { public enum positionTypeEnum{ BOTTOM_RIGHT("1","右下角"); private String key; priva...

u012833739的博客 2964

Java 图片水印工具类

import com.sun.org.apache.xerces.internal.impl.dv.util.Base64; import sun.misc.BASE64Decoder; import sun.misc.BASE64Encoder; import java.awt.AlphaComposite; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.Image; imp

qq_44785726的博客 649
上一篇: Installaide(nextinstaller)序列号
下一篇: 用NextInstaller制做B/S 系统的安装盘
mfclp
博客等级 码龄21年 3粉丝 18原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值