12.20在非Web Project工程中,如何用简单的方法实现安装时IIS的检测(适用于ISX,10.5,11,11.5):
新建一个Web Project,切换到Installation Designer->System search处,在右边的列表中右击,选择publish Wizard(发布向导),按向导提示进行发布。
相关图片如下:
切换到Installscript msi或basic msi工程中在Installation Designer->System search处,在右边的列表中右击选择Add predefined search...,在此可以看到之前发布的System search
相关图片如下:

相关图片如下:

这时你转到Project Assistant页面->Install Requirment处就可以看到你加的东东了,接下来怎么做就不用说了吧:)……

代码实现:
function OnBegin()
begin
RegDBSetDefaultRoot ( HKEY_LOCAL_MACHINE );
SetDialogTitle (DLG_ASK_YESNO, "确认安装");
if (RegDBKeyExist ("System\\CurrentControlSet\\Services\\IISADMIN" ) < 0)
then
if(AskYesNo("本机尚未安装Internet信息服务,是否继续安装?",YES)=NO )
then
abort;
endif;
endif;
//检测是否安装了WEB服务
if (RegDBKeyExist ("System\\CurrentControlSet\\Services\\W3SVC\\Parameters" ) < 0)
then
if(AskYesNo("未检测到本机存在WEB服务,是否继续安装?",YES)=NO)
then
abort;
endif;
endif;
//检测是否安装了ftp服务
if(RegDBKeyExist ("System\\CurrentControlSet\\Services\\MSFTPSVC\\Parameters" ) < 0)
then
if(AskYesNo("未检测到本机存在FTP服务,是否继续安装?",YES)=NO)
then
abort;
endif;
else
return(1);
endif;
end;
这样做还是不太准确。有的没装也有iisadmin键值。