添加 - 删除卸载和msiexec / x无法相应地为基于WiX的安装程序工作

时间:2011-06-24 10:45:14

标签: uninstall msiexec

对于我的一些基于WiX的安装程序,我正面临这种奇怪的行为。安装后,如果我尝试通过添加删除程序(Windows 7中的程序和功能)使用右键菜单并选择卸载(此默认BTW)删除,它只显示一个立即退出的进度对话框程序永远不会卸载并保持不变。

使用

时会出现相同的行为

msiexec / x {ProductCode}

(或Product.msi)

但是,使用右键菜单,选择更改,然后从维护对话框,选择删除,将其完全卸载。

以下是InstallUISequence和InstallExecuteSequence的代码:

<InstallUISequence>
    <Custom Before="CostFinalize" Action="CheckPreReqs" />
    <Show Dialog="MaintenanceWelcomeDlg" 
          Overridable="yes" 
          Sequence="1230">Installed And Not RESUME And Not Preselected And Not PATCH</Show>
</InstallUISequence>
<InstallExecuteSequence>
    <ScheduleReboot Sequence="6410">ISSCHEDULEREBOOT</ScheduleReboot>
    <LaunchConditions Sequence="410">Not Installed</LaunchConditions>
    <FindRelatedProducts Sequence="420">NOT ISSETUPDRIVEN</FindRelatedProducts>
    <AppSearch Sequence="400" />
    <CCPSearch Sequence="500">CCP_TEST</CCPSearch>
    <RMCCPSearch Sequence="600">Not CCP_SUCCESS And CCP_TEST</RMCCPSearch>
    <ValidateProductID Sequence="700" />
    <CostInitialize Sequence="800" />
    <FileCost Sequence="900" />
    <IsolateComponents Sequence="950" />
    <CostFinalize Sequence="1000" />
    <SetODBCFolders Sequence="1100" />
    <MigrateFeatureStates Sequence="1200" />
    <InstallValidate Sequence="1400" />
    <InstallInitialize Sequence="1501" />
    <AllocateRegistrySpace Sequence="1550">NOT Installed</AllocateRegistrySpace>
    <ProcessComponents Sequence="1600" />
    <UnpublishComponents Sequence="1700" />
    <UnpublishFeatures Sequence="1800" />
    <StopServices Sequence="1900">VersionNT</StopServices>
    <DeleteServices Sequence="2000">VersionNT</DeleteServices>
    <UnregisterComPlus Sequence="2100" />
    <SelfUnregModules Sequence="2200" />
    <UnregisterTypeLibraries Sequence="2300" />
    <RemoveODBC Sequence="2400" />
    <UnregisterFonts Sequence="2500" />
    <RemoveRegistryValues Sequence="2600" />
    <UnregisterClassInfo Sequence="2700" />
    <UnregisterExtensionInfo Sequence="2800" />
    <UnregisterProgIdInfo Sequence="2900" />
    <UnregisterMIMEInfo Sequence="3000" />
    <RemoveIniValues Sequence="3100" />
    <RemoveShortcuts Sequence="3200" />
    <RemoveEnvironmentStrings Sequence="3300" />
    <RemoveDuplicateFiles Sequence="3400" />
    <RemoveFiles Sequence="3500" />
    <RemoveFolders Sequence="3600" />
    <CreateFolders Sequence="3700" />
    <MoveFiles Sequence="3800" />
    <InstallFiles Sequence="4000" />
    <DuplicateFiles Sequence="4210" />
    <PatchFiles Sequence="4090" />
    <BindImage Sequence="4300" />
    <CreateShortcuts Sequence="4500" />
    <RegisterClassInfo Sequence="4600" />
    <RegisterExtensionInfo Sequence="4700" />
    <RegisterProgIdInfo Sequence="4800" />
    <RegisterMIMEInfo Sequence="4900" />
    <WriteRegistryValues Sequence="5000" />
    <WriteIniValues Sequence="5100" />
    <WriteEnvironmentStrings Sequence="5200" />
    <RegisterFonts Sequence="5300" />
    <InstallODBC Sequence="5400" />
    <RegisterTypeLibraries Sequence="5500" />
    <SelfRegModules Sequence="5600" />
    <RegisterComPlus Sequence="5700" />
    <InstallServices Sequence="5800">VersionNT</InstallServices>
    <StartServices Sequence="5900">VersionNT</StartServices>
    <RegisterUser Sequence="6000" />
    <RegisterProduct Sequence="6100" />
    <PublishComponents Sequence="6200" />
    <PublishFeatures Sequence="6300" />
    <PublishProduct Sequence="6400" />
    <InstallFinalize Sequence="6600" />
    <RemoveExistingProducts Sequence="1410" />
    <MsiPublishAssemblies Sequence="6250" />
    <MsiUnpublishAssemblies Sequence="1750" />
</InstallExecuteSequence>

如何解决此问题?

1 个答案:

答案 0 :(得分:1)

您有可能在InstallUISequence期间(不显示ARP或msiexec / x)尝试“填充”并且您(错误地)需要用户界面并执行此处的步骤,如反对在InstallExecuteSequence

期间执行这些操作

如果使用Orca检查两个序列,您应该能够识别出有问题的操作。