InstallShield中的Setup.exe创建

时间:2013-11-18 09:33:03

标签: installshield

这是卸载后删除目录的功能。 基本上,在我的.ism文件中,有2个.rul文件(setup.rul和VerGetFileProperty.rul)。我添加了一些代码来清理setup.rul中的目录。我构建,并形成一个setup.exe。当我运行setup.exe时,它会要求我选择数据库,如果我选择了数据库,它会说找不到数据库服务器。但如果我运行原始设置,它将自动检测数据库服务器并安装。如何创建setup.exe?我没有对搜索数据库服务器部分进行任何更改。我刚刚卸载时创建了一个删除目录的函数。

function fnClean()
NUMBER nrv;
begin
if (ExistsDir (INSTALLDIR ^ "XYZ Dir") = EXISTS) then     
    SetDialogTitle(DLG_ASK_YESNO,"Delete Logs");
    nrv = AskYesNo( "Do you want to delete all log files now? Say No if you       prefer delete them later manually.", YES );
    if ( nrv ) then     
        nrv = DeleteDir (INSTALLDIR ^ "XYZ Dir", ALLCONTENTS);    
        DeleteDir (INSTALLDIR, ALLCONTENTS);
    endif;        
else
    DeleteDir (INSTALLDIR, ALLCONTENTS);  
endif;
end;

1 个答案:

答案 0 :(得分:1)

我假设您的安装程序要么调用生成日志文件的exe,要么使用您正在安装的任何应用程序生成日志文件。

如果您使用的是基于MSI(Windows Installer)的项目,则可以将文件添加到RemoveFile表中。您将要使用InstallMode为2(卸载时删除)


编辑以扩展答案

  

cmd_line =“cmd / c”“”& objNamedArgs.Item(“SQLCMD”)& “”“& objNamedArgs.Item(“CONNECT”)& _“ - i”& sql_file& “>”& log_file& “2>& 1”

  • -i“sqlfile”是sqlcmd程序的参数。 -i表示“输入”,sqlfile将是指定的任何内容,通常是.sql脚本。
  •   

    logfile表示:将任何命令(在本例中为sqlcmd)的输出重定向到logfile指定的文件中。

  • 2>& 1已经回答here