Domanda

Il mio installatore Wix ha lavorato installando il mio programma, ma è rotto per la disinstallazione.Un file viene rimosso troppo presto, ed è necessario più avanti lungo la linea.La disinstallazione fallisce e ritorna le sue modifiche.

Questo significa che non riesco a rimuovere il pacchetto dalla mia macchina e quindi non è possibile installare ulteriori build del mio installatore (un notevole inconveniente).Come posso costringere la rimozione del pacchetto?

È stato utile?

Soluzione

.

Aggiornamento, Stein Åsmul : Iniezione di questo nuovo elenco di approcci di pulizia .


.
    .
  1. Trova il pacco in C:\Windows\Installer, in cui Windows mantiene copie dei pacchetti MSI installati. I nomi vengono generati a caso, quindi dovrai guardare le date di creazione dei file.

  2. Apri il file MSI con Orca . (Purtroppo non c'è un semplice download per il programma di installazione dell'Orca. Puoi ottenerlo installando gli "Strumenti MSI" del Windows 10 SDK , quindi cerca per orca.msi in C:\Program Files (x86)\Windows Kits.)

  3. Elimina l'azione personalizzata offensiva da Tabella di personalizzazione

  4. Ora dovresti essere in grado di disinstallare il pacchetto.

    Modifica : Secondo la risposta @ Darkrock76 di seguito, la cartella per STEP 1 potrebbe anche essere C:\ProgramData\Package Cache\. Ho sia sulla mia macchina Windows 7 SP1. Non ho potuto trovare immediatamente la documentazione su questo.


    .

    Aggiornamento : Ciao Wim, grazie per le buone informazioni con la registrazione gratuita di registrazione che hai fornito in precedenza! Un paio di aggiornamenti su questo problema di disinstallazione: DarkRock76S Risposta non è corretta, Si prega di consultare il mio commento a lui sotto . Inoltre, invece di eliminare l'azione personalizzata nel passaggio 3 sopra, è possibile impostare le sue condizioni nella tabella INSTILLEXECUTESEQUENCE su 0 (Numeric Zero== False) per evitare che sia mai in esecuzione. Eliminazione della voce della tabella di azione personalizzata lascia alcuni riferimenti chiave stranieri rotti (potrebbero fallire ad un certo punto immagino). Lo strumento Microsoft Fixit può anche essere provato prima di ricorrere a questo hack. Ci sono Alcune alternative, msi strumenti / redattori / spettatori gratuiti (verso il basso) oltre a Orca. Forse l'utente dovrebbe anche creare una zip del MSI originale prima di modificare, ma immagino che sia implicito. Si prega di eliminare questo commento disordinato una volta ottenuto - potrei scrivere un rapido riepilogo dei diversi modi per forzare tali disinstalle se ottengo il tempo (lo strumento Fixit MS, utilizzando aggiornamenti minori, modificare direttamente la memorizzazione memorizzata nella cache Disinstallare, e qualsiasi altra cosa c'è). Rock On with Deployment :-). La tua risposta COM gratuita di registrazione mi ha aiutato (Stein) un bel po 'in passato. Molte grazie.

    e ho dimenticato una cosa: puoi trovare il file MSI di cache effettivo usando PowerShell . Era per un pacchetto, Puoi anche ottenere per tutti i pacchetti (scorri verso il basso fino a First Screenshot).

Altri suggerimenti

Questo comando di solito funziona per me:

msiexec /fv installer.msi
.

In qualche modo ricorda il programma di installazione, quindi puoi riprovare con uno corretto.

Una volta questo comando non funzionava e ho dovuto usare Microsoft Fixit.Ha risolto il problema (piuttosto uno shock per me).

A seconda della ragione esatta del comportamento che hai descritto, potresti avere almeno un paio di opzioni.

Se il motivo del fallimento è un'azione personalizzata che funziona sulla disinstallazione, e questa azione personalizzata è condizionata con alcune proprietà su cui è possibile influenzare, è possibile provare a passare il valore desiderato tramite la riga di comando:

msiexec /x {YOUR-PRODUCTCODE-HERE} RUNMYACTION=false
.

In questo esempio RUNMYACTION è una proprietà di Windows Installer che partecipa a una condizione di azione personalizzata e se passano false come valore, l'azione non verrà eseguita.

In caso contrario, è possibile fissare la logica (o semplicemente disabilitare esplicitamente l'azione personalizzata) e creare il nuovo pacchetto MSI. Quindi caricalo in quella macchina di destinazione e esegui come questo:

msiexec /i YourPackage.msi REINSTALL=ALL REINSTALLMODE=vomus
.

Qui YourPackage.msi è un nuovo pacchetto fisso, REINSTALL=ALL incarica il msiexec per reinstallare il prodotto utilizzando questo nuovo pacchetto e REINSTALLMODE=vomus (la parte v di esso) ri-cacherà il pacchetto MSI e sarai in grado di rimuovere è il modo normale in seguito.

A Laterale Nota: dovresti testare l'installazione su una macchina virtuale per non rischiare il tuo vero.

FYI: in Windows 8.1 Gli installatori sono stati spostati qui: c: \ ProgramData \ Cache pacchetto \

Di solito cerco solo <Your Installer's Name>.msi o <Your Installer's Company Name> nel registro e cancella alcuni dei tasti di disinstallazione da alcuni dei Products sotto gli alberi di Windows Installer e tutto ciò di solito funziona bene e dandy dopo, anche se questo sarebbe Lascia alcune cose in giro come gli installatori memorizzati nella cache e possibilmente tonnellate di altre chiavi del registro per ogni file installato, ecc. Ma il suo Sempre ha funzionato per me quando si sviluppa installatori perché onestamente, a chi importa se un MSI è rimastomemorizzato nella cache da qualche parte?Stai usando comunque la macchina per lo sviluppo, giusto?

Ho usato questo piccolo strumento anche da Microsoft

https://support.microsoft.com/en-us/help/17588/fix-problems-that-block-Programs-From-Beining-installed-or-removed

Fondamentalmente questo strumento può essere utilizzato per "riparare questioni incluse chiavi del registro danneggiate che bloccano dall'installazione o dalla rimozione dei programmi"

Che cosa risolve:

    .
  1. chiavi del registro corrotti sui sistemi operativi a 64 bit

  2. chiavi del registro corrotti che controllano i dati di aggiornamento

  3. Problemi che impediscono che i nuovi programmi vengano installati

  4. Problemi che impediscono che i programmi esistenti siano completamente disinstallati o aggiornati

  5. Problemi che bloccano dalla disinstallazione di un programma tramite aggiungi o rimuovere programmi (o programmi e funzionalità) nel pannello di controllo

  6. Può essere utilizzato per:

      .
    • Windows 7
    • Windows 8
    • Windows 8.1
    • Windows 10
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top