使用Setup Factory 制作安装包的一般过程

安装包是用户接触到工程的第一步,所以安装包的制作非常重要。下面记录一下使用Setup Factory制作安装包的过程。

建立工程

打开setupFactory,按照提示一步步往下走即可。
使用Setup Factory 制作安装包的一般过程_第1张图片
使用Setup Factory 制作安装包的一般过程_第2张图片
在下图中的位置添加需要的项目。
使用Setup Factory 制作安装包的一般过程_第3张图片
在下图中的位置可以添加安装时的语言。
使用Setup Factory 制作安装包的一般过程_第4张图片
完成后进入主界面
使用Setup Factory 制作安装包的一般过程_第5张图片
下面我们需要将项目中的exe文件在桌面建立快捷方式。右键exe文件(图中的CTest.exe),选择文件属性—>快捷方式。
使用Setup Factory 制作安装包的一般过程_第6张图片
主界面左侧的“会话变量”可以查看或修改安装过程中所需要的变量;“屏幕”选项卡中可以对安装的全过程一一修改;同理,“卸载”选项卡中的选项可以对卸载的全过程一一修改。

检测软件是否安装

在安装前,一般需要检测用户是否已经安装过此软件,并采取相对的措施。我们采用安装完成后修改注册表,启动安装时检查注册表的方法。
1.安装完成后修改注册表信息。
在主界面中选择屏幕->安装之后,进去后点击“Finished Install”,再点击编辑,找到“操作”选项卡中的“On preload”,在这里可以用代码完成此项功能。
为了方便起见,在会话变量中将项目名称尽量改为英文。代码实现过程如下。
Tip:若不知道函数需要的参数,可以鼠标双击函数,按提示填写参数。

softname=SessionVar.Expand("%ProductName%");
Reg_soft="Software\\\\zhizhu\\\\"..softname;
--先在HKEY_LOCAL_MACHINE中的Software中建立一个表项“zhizhu”
result = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "Software\\zhizhu");
if (result) then
else
Registry.CreateKey(HKEY_LOCAL_MACHINE, "Software\\zhizhu");
end
--创建本程序注册表项,记录安装路径和卸载路径
Appfile=SessionVar.Expand("%AppFolder%");
Registry.CreateKey(HKEY_LOCAL_MACHINE, Reg_soft);
Registry.SetValue(HKEY_LOCAL_MACHINE, Reg_soft, "InstallPath", Appfile,1);
Uninfile=SessionVar.Expand("%AppFolder%\\Uninstall\\uninstall.exe \"/U:%AppFolder%\\Uninstall\\uninstall.xml\"");
Registry.SetValue(HKEY_LOCAL_MACHINE, Reg_soft, "Uninstaller",Uninfile, 1);

然后要做的就是在启动安装时检测注册表中的信息,若发现注册表中有记录,则提示用户是否需要删除。卸载软件时先获取注册表中存的卸载文件地址,然后运行它。
使用Setup Factory 制作安装包的一般过程_第7张图片

softname=SessionVar.Expand("%ProductName%")
Reg_soft="Software\\\\zhizhu\\\\"..softname
result = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE,Reg_soft)
if (result) then
    msgBTN = Dialog.Message(softname,'提示:此机已安装本软件,是否重新安装?\r\n\r\n ',MB_YESNO,MB_ICONINFORMATION,MB_DEFBUTTON1)
    if (msgBTN == IDYES) then
        result = Registry.GetValue(HKEY_LOCAL_MACHINE,Reg_soft,"Uninstaller",true);
        File.Run(result,"","",SW_SHOWNORMAL,true);
        result = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE,Reg_soft);
        if (result) then
        msgBTN2=Dialog.Message(softname,'卸载未完成!是否继续安装?\r\n\r\n 点击“是”继续安装;点击“否”,退出安装。',MB_YESNO,MB_ICONINFORMATION,MB_DEFBUTTON1);
            if (msgBTN2==IDYES) then
            elseif (msgBTN2==IDNO) then
                Application.Exit();
            end
        end
    elseif(msgBTN==IDNO) then
        Application.Exit();
    end
else
end

你可能感兴趣的:(实例,安装包制作)