Enabing IIS с использованием CAQuietExec64 в установщике Wix не работает

Мне нужно сделать установщик Windows, который включает (устанавливает) IIS на Windows. Когда я запускаю MSI-файл, он запускается без каких-либо ограничений, однако IIS не включается (не устанавливается), когда я захожу в меню "Программы и компоненты" / "Выключить функцию Windows", он не устанавливается.

Вот мой файл 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 ответ

Две потенциальные проблемы:

  1. Вы объявили пользовательское действие, но не поместили его в последовательность, указав, где оно будет выполняться и какие условия применяются. Так что это не работает.

Шаг 2 отсутствует: http://wixtoolset.org/documentation/manual/v3/wixdev/extensions/authoring_custom_actions.html

  1. После того, как вы это сделаете, пользовательское действие помечается как немедленное, что обычно является ошибкой, поскольку изменения в системе должны выполняться в отложенном режиме, а немедленные пользовательские действия не выполняются с повышенными правами.
Другие вопросы по тегам