Функциональность удаления WiX с помощью StandardBootstrapperApplication

Я создал очень простой установщик для пакета приложений с зависимостями, который обрабатывает перезапуск пакета .NET. Однако сейчас я столкнулся с проблемой, когда действие удаления удаляет только сам установщик, который отображается в списке программ. Все остальные файлы .exe, которые запускают процессы установки, остаются установленными. Есть ли простой способ справиться с этой установкой? Я все еще новичок в наборе инструментов WiX и не хотел слишком глубоко погружаться в пользовательский установщик. Вот мой комплект:

 <?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi"
  xmlns:netfx="http://schemas.microsoft.com/wix/NetFxExtension"
     xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" 
     xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
  <Bundle Name="Visible EP Installer" Version="1.0.0.0" Manufacturer="VEP" UpgradeCode="8d1a4e2a-be3f-4b51-824b-75652ae98bad">
    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.RtfLicense" >
      <bal:WixStandardBootstrapperApplication
          LicenseFile="..\VisibleEP EULA-ver2.rtf"
          LogoFile="..\VEPLogo_HeartOnlyBlack(50x50).png"
        />
    </BootstrapperApplicationRef>
    <?define NetFx45MinRelease = 378389?>
    <util:RegistrySearch
        Id="NETFRAMEWORK45"
        Variable="NETFRAMEWORK45"
        Root="HKLM"
        Key="SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full"
        Value="Release"
        Result="value" />
    <Chain>
      <ExePackage Id="NetFx45Redist" Cache="no" Compressed="yes" PerMachine="yes" Permanent="yes" Vital="yes" InstallCommand="/q /norestart" RepairCommand="/q"
              SourceFile="..\VEP Deploy\Setup Files\dotNetFx45_Full_setup.exe"
              DetectCondition="NETFRAMEWORK45 &gt;= $(var.NetFx45MinRelease)"
              InstallCondition="(NOT NETFRAMEWORK45 &gt;= $(var.NetFx45MinRelease))">
        <ExitCode Value="1641" Behavior="forceReboot"/>
        <ExitCode Value="3010" Behavior="forceReboot"/>
        <ExitCode Value="0" Behavior="success"/>
        <ExitCode Behavior="error"/>
      </ExePackage>
      <ExePackage
        SourceFile="..\VEP Deploy\Setup Files\Encoder_en.exe"
        Permanent="no"
        InstallCommand="/q"
        RepairCommand="/q">
        <ExitCode Behavior="success"/>
      </ExePackage>
      <ExePackage
        SourceFile="..\VEP Deploy\Setup Files\vcredist_x86.exe"
        Permanent="no"
        InstallCommand="/q"
        RepairCommand="/q">
        <ExitCode Behavior="success"/>
      </ExePackage>
      <ExePackage
        SourceFile="..\VEP Deploy\Setup Files\vcredist_x64.exe"
        Permanent="no"
        InstallCommand="/q"
        RepairCommand="/q">
        <ExitCode Behavior="success"/>
      </ExePackage>
      <ExePackage
        SourceFile="..\VEP Deploy\Setup Files\vep_setup.exe"
        Permanent="no">
        <ExitCode Behavior="success"/>
      </ExePackage>
        </Chain>
    </Bundle>
</Wix>

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


person Ian Panzica    schedule 25.06.2013    source источник


Ответы (1)


Вы должны указать значения атрибута UninstallCommand, чтобы Burn знал, как удалить .exe.

person Bob Arnson    schedule 25.06.2013
comment
Хорошо, какие аргументы командной строки можно передать команде удаления? Я только что попробовал, и это, кажется, не работает - person Ian Panzica; 25.06.2013
comment
Любая строка. Пакет .exe может быть любым, поэтому Burn не может предположить, что для каждой операции существует стандартный переключатель. Попробуйте /удалить для начала. - person Bob Arnson; 25.06.2013
comment
Это работает спасибо! Любая идея, как остановить загрузчик от установки? - person Ian Panzica; 26.06.2013
comment
Извините, не знаю, что вы имеете в виду? - person Bob Arnson; 26.06.2013
comment
Когда я смотрю на панель управления для удаления из списка программ, сам установщик находится в этом списке ... Мне сказали, что это нежелательно, и я работал над тем, чтобы его не было в этом списке, но не может показаться чтобы найти способ сделать это. Я не думаю, что это точно возможно. - person Ian Panzica; 26.06.2013
comment
Это не. Пакет должен быть зарегистрирован, чтобы пользователь мог запустить удаление самого пакета. - person Bob Arnson; 27.06.2013