无法从控制面板中删除wix bootstrap应用程序

问题描述 投票:0回答:1

我创建了wix bootsrapper应用程序,该应用程序安装了2个msi并运行1个exe文件。每当我运行它时,它就会出现在控制面板中(重复)。但是,当我要从控制面板中删除时,它只是在运行而不是卸载。

我的bootsraperr代码是这样的:

<?xml version="1.0" encoding="UTF-8"?>
    <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:bal="http://schemas.microsoft.com/wix/BalExtension">
        <?define LibsDir="..\Shared\Lib\" ?>
            <Bundle Name="Product Setup" Version="1.0.0.0" Manufacturer="MyCompany" UpgradeCode="{32FC4B59-99BE-4617-867C-4620E2E5772F}">

                <BootstrapperApplicationRef Id="ManagedBootstrapperApplicationHost">
                    <Payload SourceFile="BootstrapperCore.config" />
                    <Payload SourceFile="$(var.LibsDir)WixWPF.dll" />
                    <Payload SourceFile="$(var.LibsDir)WixWPF.pdb" />
                    <Payload SourceFile="msi\p1.msi" />
                    <Payload SourceFile="msi\p2.msi" />
                    <Payload SourceFile=".../.exe" />

                </BootstrapperApplicationRef>

                <Chain>
                    <PackageGroupRef Id="NetFx40Web" />
                    <MsiPackage Id="Product1" SourceFile="msi\p2.msi" InstallCondition="InstallP=1" />
                    <MsiPackage Id="Product2" SourceFile="msi\P1.msi" />
                    <ExePackage Id="Product3" SourceFile="p2.exe" />
                </Chain>

            </Bundle>
    </Wix>

我想从控制面板中将其卸载。我该如何处理?

c# wix uninstall wix3.5 bootstrapper
1个回答
0
投票

引导程序可以通过GUIDUpgradeCodeVersion进行标识。您无法设置引导程序的GUID,它会在每次重建后随机生成一个新的引导程序。因此,如果重建引导程序,则将获得两个具有相同的[[UpgradeCode和Version,但具有不同的[[GUID]]的引导程序,并且它们将作为两种不同的产品安装。要从控制面板卸载旧的引导程序,需要正确缓存它的setup.exe,并使用正确配置的卸载选项。如果您有问题,请执行以下操作:

找到要卸载的引导程序的GUID。最好的方法是在%temp%目录中找到安装日志文件并找到以下行:

  1. 会话开始,注册密钥:SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Uninstall {PUT-GUID-HERE}
如果没有日志文件,请转到参数2

在以下注册表项中查找和删除引导程序的提及。最好的方法是通过GUID进行此操作,但是您也可以使用引导程序的DisplayName。注意:如果使用DisplayName,则可以将两个安装程序的引导程序混合使用。

  1. 计算机\ HKEY_CLASSES_ROOT \安装程序\依赖项
SOFTWARE \ WOW6432Node \ Microsoft \ Windows \ CurrentVersion \ Uninstall

软件\ Microsoft \ Windows \ CurrentVersion \卸载

((后两个中的一个取决于您的MSI的InstallScope。如果所有它们都是基于计算机的,则捆绑包将位于HKLM中。)

如果引导程序已缓存,则还需要清除缓存。

为了避免将来重复,您可以有几种选择:

在安装以前的版本之前,请勿重建引导程序。或为每个版本进行备份。

    在每次重建之前升级引导程序的版本,然后将其作为更新安装。
© www.soinside.com 2019 - 2024. All rights reserved.