这是卸载后删除目录的功能。 基本上,在我的.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;
答案 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”
logfile表示:将任何命令(在本例中为sqlcmd)的输出重定向到logfile指定的文件中。