2016-03-09 147 views
0

我有一个将安装MSI软件包的引导程序。但是在卸载Bootstrapper时,它不会卸载以前由Bootstrapper安装的MSI。从引导程序卸载时卸载MSI软件包

如何在卸载引导程序的同时卸载MSI软件包?以下是我在Bootstrapper中安装MSI软件包的方法。如何增强此代码在卸载时卸载此MSI软件包?

<?xml version="1.0" encoding="UTF-8"?> 
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" 
    xmlns:util="http://schemas.microsoft.com/wix/UtilExtension"> 
    <Bundle Name="Name" Version="1.0.0.0" Manufacturer="MyCompany" UpgradeCode="00000000-0000-0000-0000-000000000000" DisableModify="yes" DisableRepair="yes" > 

    <BootstrapperApplicationRef Id="WixStandardBootstrapperApplication.HyperlinkLicense"> 
    <bal:WixStandardBootstrapperApplication 
     LicenseUrl="" 
     ThemeFile=".\Theme\RtfTheme.xml" 
     LocalizationFile=".\Theme\RtfTheme.wxl" 

     xmlns:bal="http://schemas.microsoft.com/wix/BalExtension" /> 
     <Payload SourceFile=".\Images\Logo.gif" /> 
    </BootstrapperApplicationRef> 

     <Chain> 
       <PackageGroupRef Id="MyMSI"/> 
     </Chain> 
    </Bundle> 

    <Fragment> 

    <PackageGroup Id="MyMSI"> 
     <MsiPackage Id="MyMSI" 
        DisplayName="My applicaton" 
        DisplayInternalUI="yes" 
        Compressed="no" 
        Visible="yes" 
        InstallSize="549" 
        Cache="yes" 
        Vital="yes" 
        Permanent="no" 
        SourceFile="$(var.MyAppllicationWIX_MSI.TargetPath)"/> 
    </PackageGroup> 
    </Fragment> 
</Wix> 

回答

0

可能是您的注册表不好,请检查%temp%文件夹部分计划中的日志。 日志文件将指出MSI是否仍由另一个Bundle引用计数。

如果您正在VM上运行测试,请在运行此软件包上的测试之前尝试重置为最新检查点。

也有时产品ID是*它发生。

+0

我在日志文件中发现了**不会卸载软件包:MyApplication,找到依赖项:1 **我该如何解决这个问题? –

+0

在注册表中搜索列为依赖关系的GUID并将其删除。 –