2013-06-25 2 views
2

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

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

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

ответ

3

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

+0

Хорошо, какие аргументы командной строки могут быть переданы команде uninstall? Я просто попробовал, и он не работает –

+0

Любая строка. Пакет .exe может быть чем угодно, поэтому Burn не может предположить, что для каждой операции есть стандартный переключатель. Попробуйте запустить «/ uninstall». –

+0

Это работает спасибо! Любая идея, как остановить загрузчик от установки себя? –