Включение 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

это тоже не работает.

Не могли бы вы помочь мне, в чем проблема? Спасибо


person Amin Merati    schedule 16.02.2017    source источник


Ответы (1)


Две возможные проблемы:

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

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

  1. После того, как вы это сделаете, настраиваемое действие помечается как немедленное, что обычно является ошибкой, поскольку изменения в системе должны выполняться в отложенном режиме, а немедленные настраиваемые действия не выполняются с повышенными правами.
person PhilDW    schedule 16.02.2017
comment
Спасибо за ваш ответ. Я добавил InstallExecuteSequence, как вы упомянули. А также установить customAction в отложенном режиме и Impersonate как нет. Я также запускаю его в командной строке msiexec /i installer.msi /L*V package.log. это тоже не работает. Единственная ошибка в журнале: Успешная установка или статус ошибки: 1603, ссылка на поддержку Microsoft говорит, что роль SYSTEM не имеет полного контроля, что не так. - person Amin Merati; 17.02.2017
comment
Я бы задал для этого новый вопрос - 1603 почти всегда является ошибкой пользовательского действия, и в журнале должно быть указано, связано ли это с IIS или с чем-то еще. - person PhilDW; 17.02.2017