【问题标题】:IIS 7.5 Installation required only once if IIS is disable如果 IIS 被禁用,则只需安装一次 IIS 7.5
【发布时间】:2012-02-23 15:19:32
【问题描述】:

您好,我正在使用以下代码在 Windows 7 中启用 IIS 7.5。它工作正常。但问题是每次运行安装程序(.MSi)时,IIS安装和卸载时间也启用了IIS7.5,如何设置条件来检查iis7.5是否被禁用然后我想安装IIS。我正在使用 wix3.5

请帮帮我。

 <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>

【问题讨论】:

    标签: wix iis-7.5 wix3.5


    【解决方案1】:

    您可以添加多个条件来限制自定义操作的运行时间。要仅在安装时运行 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”操作的一些条件,所以它不会不必要地运行。

    【讨论】:

      猜你喜欢
      • 2015-11-02
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-11
      相关资源
      最近更新 更多