2012-02-23 43 views
0

嗨,我使用下面的代码来启用Windows 7中的IIS 7.5。它的工作正常。但问题是每次运行设置(.MSi)IIS安装和卸载时间也会启用IIS7.5,如何将条件检查iis7.5是否禁用,然后我想安装IIS。我正在使用wix3.5IIS 7.5安装只需要一次,如果IIS禁用

请帮帮我。

<CustomAction Id="InstallIISCA" PatchUninstall="no" Return="check" Property="INSTALLIISPROP" Execute="oncePerProcess" HideTarget="yes" Impersonate="yes" 
     ExeCommand=" /Online /Enable-Feature /FeatureName:IIS-WebServerRole /FeatureName:IIS-ApplicationDevelopment /FeatureName:IIS-ASPNET /FeatureName:IIS-IIS6ManagementCompatibility /FeatureName:IIS-WebServerManagementTools /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-ISAPIExtensions /FeatureName:IIS-NetFxExtensibility /FeatureName:IIS-WindowsAuthentication /FeatureName:IIS-IISCertificateMappingAuthentication /FeatureName:IIS-IPSecurity /FeatureName:IIS-ISAPIExtensions /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-ManagementConsole "/> 
<InstallExecuteSequence> 
    <Custom Action="InstallIISCA" Before="ConfigureIIs" /> 
</InstallExecuteSequence> 
<Property Id="INSTALLIISPROP" Value="dism.exe"></Property> 

回答

0

您可以添加多个限制何时运行自定义操作的条件。要只运行在安装时你的IIS检查,您的自定义元素改成这样:

<Custom Action="InstallIISCA" Before="ConfigureIIs"> 
    Not Installed 
    </Custom> 

你的描述有大约条件句几上运行。我认为你也要求一个条件,如果IIS启用(?也许你的意思是安装?)不做安装。要做到这一点,首先设置一个属性为条件(在这里,检查IIS的版本,以确定是否安装了)

<Property Id="IIS_MAJOR_VERSION"> 
    <RegistrySearch Id="CheckIISVersion" Root="HKLM" Key="SOFTWARE\Microsoft\InetStp" Name="MajorVersion" Type="raw" /> 
    </Property> 

然后包括在自定义操作条件的财产:

<Custom Action="InstallIISCA" Before="ConfigureIIs"> 
    Not Installed AND IIS_MAJOR_VERSION 
    </Custom> 

并猜测你已经有了“ConfigureIIS”操作的一些条件,所以它不会不必要地运行。