Add-Remove Uninstall и msiexec / x не работают соответственно для установщиков на основе WiX - PullRequest
1 голос
/ 24 июня 2011

Я сталкиваюсь с этим странным поведением для некоторых моих установщиков на основе WiX. После установки, если я пытаюсь удалить с помощью команды «Добавить программу удаления» («Программы и компоненты в Windows 7») с помощью «Меню правой кнопки мыши» и выбираю «Удалить» (это значение по умолчанию) , отображается только диалоговое окно хода выполнения, которое немедленно завершается, и программа никогда не удаляется и остается без изменений.

То же поведение наблюдается при использовании

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 Ответ

1 голос
/ 30 июня 2011

Скорее всего, вы пытаетесь делать "вещи" во время InstallUISequence (который не отображается из ARP или msiexec / x), и вам (неправильно) требуется пользовательский интерфейс и выполнение действий здесь, в отличие от выполняя их во время InstallExecuteSequence

Если вы осмотрите две последовательности с помощью Orca, вы сможете определить проблемные действия.

...