2013-06-25 2 views
2

종속성이있는 응용 프로그램 번들을위한 매우 기본적인 설치 프로그램을 작성했으며 .NET 패키지 재시작을 처리합니다. 그러나 지금 실행하고있는 것은 설치 제거 동작 만 프로그램 목록에 나타나는 설치 프로그램 자체를 제거하는 문제입니다. 설치 프로세스를 실행하는 다른 모든 .exe 파일이 설치된 상태로 유지됩니다. 이 설치를 처리하는 간단한 방법이 있습니까? 필자는 여전히 WiX 툴셋에 익숙하지 않았기 때문에 맞춤형 설치 프로그램을 깊이 들여다보고 싶지 않았습니다. 나는 지난 몇의 종료 코드를 처리하는 것은 조금 hackish 것을 알고StandardBootstrapperApplication으로 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> 

하지만 난 너무 오래 내 다른 영향을 미치지 않는 한 모든 순간에 그와 그 관심이 아니에요 : 여기 내 번들입니다 문제.

답변

3

번들은 .exes를 제거하는 방법을 알 수 있도록 UninstallCommand 속성 값을 제공해야합니다.

+0

Ok 어떤 종류의 명령 줄 인수를 uninstall 명령에 전달할 수 있습니까? 방금 시도했지만 작동하지 않는 것 같습니다 –

+0

모든 문자열. .exe 패키지는 아무 것도 될 수 있으므로 Burn은 각 작업에 대해 표준 스위치가 있다고 가정 할 수 없습니다. 시작하려면 "/ uninstall"을 시도하십시오. –

+0

감사합니다! 부트 스트 래퍼가 스스로 설치하는 것을 어떻게 막을 수 있습니까? –