在Wix安装程序中使用CAQuietExec64启用IIS不起作用

时间:2017-02-16 17:28:13

标签: iis wix installer silent-installer

我需要制作一个Windows安装程序,它可以在Windows上启用(安装)IIS。 当我运行.msi文件时,它运行时没有给任何东西,但是当我转到程序和功能/关闭Windows功能时,IIS没有启用(安装),它没有安装

这是我的wxs文件:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="*" Name="IISInstaller" Language="1033" Version="1.0.0.0" Manufacturer="Company" UpgradeCode="21ece05f-bf5c-4f97-850e-cb7cef2bf65e">
        <Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" />

        <MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
        <MediaTemplate />

    <Property Id="QtExec64CmdLine" Value='"[WindowsFolder]Sysnative\dism.exe" /Online /Enable-Feature /FeatureName:IIS-ApplicationDevelopment /FeatureName:IIS-WebServer 
              /FeatureName:IIS-WebServerRole /FeatureName:IIS-RequestFiltering /FeatureName:IIS-Security 
              /FeatureName:IIS-NetFxExtensibility /FeatureName:IIS-ASPNET /FeatureName:IIS-ISAPIExtensions 
              /FeatureName:IIS-ISAPIFilter /FeatureName:IIS-DefaultDocument /FeatureName:IIS-HttpErrors /FeatureName:IIS-StaticContent 
              /FeatureName:IIS-HttpLogging /FeatureName:IIS-RequestMonitor /FeatureName:IIS-HttpCompressionStatic 
              /FeatureName:IIS-HttpCompressionDynamic /FeatureName:IIS-RequestFiltering /FeatureName:IIS-WindowsAuthentication'/>

    <CustomAction Id="SilentLaunch" BinaryKey="WixCA" DllEntry="CAQuietExec64" Execute="immediate" Return="check" />        
    </Product>  
</Wix>

即使我更改属性中的值以运行一个简单的命令来创建目录

mkdir test

它也不起作用。

你能帮我解决一下这个问题吗? 感谢

1 个答案:

答案 0 :(得分:1)

两个潜在的问题:

  1. 您已经声明了自定义操作,但是您没有通过声明它将在何处运行以及适用的条件将其置于序列中。所以它没有运行。
  2. 缺少第2步:http://wixtoolset.org/documentation/manual/v3/wixdev/extensions/authoring_custom_actions.html

    1. 完成此操作后,自定义操作会立即标记,这通常是一个错误,因为系统更改应以延迟模式完成,并且立即自定义操作不会提升。