2010-01-15 10 views
5

Devo sostituirlo a causa di un bug che blocca la disinstallazione del software, ma Windows non trova il file MSI se utilizzo l'utilità di ricerca file, ma penso che l'MSI sia memorizzato da qualche parte dove l'utilità Add or Remove Programs può usarlo.Dove il file MSI viene copiato dopo l'installazione?

+0

Il raccomandata andata/** ** corretto per risolvere i problemi di disinstallazione è ** utilizzare per un aggiornamento minore per il prodotto installato "hotfix", e quindi attivare la sua sequenza di disinstallazione fissa ** come indicato di seguito da ** saschabeaumont **. L'aggiornamento secondario può essere fornito come un normale MSI o come pacchetto di patch (per prodotti enormi). –

risposta

11

non è vero andare in% windir% \ installatore \

Anche se penso che i file possono ottenere rinominato. Non sai da dove si ottiene la mappatura del nome da ...

Questa directory diventa molto grande quindi la sposto su un'unità esterna. A volte questo può causare errori di disinstallazione o aggiornamenti rimandando la directory

+1

eccellente! Sono sicuro che ora il file viene rinominato, ma puoi trovare il nuovo nome nel registro di Windows –

+0

ahh felice che tu sappia come ottenere la mappatura –

+1

Per il file MSI rinominato controlla l'attributo 'LocalPackage' all'interno del registro nel percorso -' [ HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Installer \ UserData \ \ Products \ \ InstallProperties] '. 'InternalUserId' è qualcosa di sorta' S-1-5-18'. 'ProductGUID' è un GUID come' 00058CD18F0BF523DA1072073D56715D' incorporato come proprietà pubblica all'interno del file MSI. – RBT

-1

Forse l'msi è stato semplicemente cancellato. È possibile eliminare la cartella di installazione ed eseguire l'utility di pulizia msi e quindi reinstallare il programma.

+0

modificato la domanda per chiarire –

+0

MSIZAP (Windows Installer Cleanup) è uno strumento molto pericoloso. Vedi http://robmensching.com/blog/posts/2009/3/6/More-on-Haacks-Troubleshooting-Windows-MSI-Installers per ulteriori informazioni – saschabeaumont

6

È possibile forzare una registrazione/reinstallazione utilizzando con MSIEXEC, il metodo consigliato per aggiornare i pacchetti di installazione con errori che non possono essere altrimenti rimosso è quello di recache con un pacchetto fisso, quindi disinstallare come al solito.

MSIEXEC /fv setup.msi 
4

Quando si installa un pacchetto utilizzando il servizio Windows Installer, il file MSI fa arrivare cache nel "% windir% \ Installer" nascosto cartella. Viene rinominato e il nuovo nome è una stringa esadecimale che non ha una correlazione evidente con il nome originale. Qualcosa come "123ab4.msi".

Non è difficile capire quale sia la copia cache della tua app. Il modo più veloce è quello di cercare il file memorizzato nella cache con le stesse dimensioni. Quando pensi di averlo trovato, passa il puntatore del mouse sul nome del file in Esplora risorse. Il tooltip verrà visualizzato e mostrerà i dati dal flusso di informazioni di riepilogo del pacchetto. Nome del prodotto, nome dell'autore e così via. Una volta trovato il file giusto, puoi modificarlo direttamente con uno strumento come Orca.

Se si sta solo provando a sistemare le cose sul proprio computer, la modifica diretta del database memorizzato nella cache potrebbe essere una buona opzione. Tuttavia, Microsoft fornisce un modo integrato per gestire un problema come questo. È possibile creare una patch (un file msp), che contiene la differenza tra il file msi originale e il file msi aggiornato. Quella patch potrebbe quindi essere distribuita a chiunque abbia già installato la tua app utilizzando l'installazione originale, e sarebbe facile da usare.

MSDN discute la creazione di patch qui - http://msdn.microsoft.com/en-us/library/aa368060%28VS.85%29.aspx

eliminazione della cartella nascosta in genere non è una buona idea, come quella rompe alcune funzionalità di base del servizio di installazione. Ciò include l'applicazione di patch, rilevamento e riparazione e la possibilità di eseguire l'aggiornamento tramite la migrazione anziché la disinstallazione e la reinstallazione.

2

Per vedere i nomi utili dei file msi in C:\Windows\Installer fare clic con il tasto destro del mouse nella parte superiore di explorer e aggiungere il campo per visualizzare Oggetto (sarà probabilmente necessario selezionarne altri in quanto non è un nome predefinito, data modificata, ecc.) Da qui puoi trovare il file msi e usarlo per disinstallare i programmi.

3

avevo messo giù sacco di commenti nella risposta accettata così ho pensato che avrei preferito inviare una risposta dopo aver creato un sommario con qualche ulteriori dettagli:

InstallShield crea una copia dei file * .msi in %windir%\installer\ percorso in cui% windir% è una variabile di ambiente che di solito punta a C:\Windows\. Prima di creare una copia di *.file msi lo rinomina usando una nomenclatura casuale ad es. Posso vedere un file chiamato 65ec5c99.msi nella mia directory C:\Windows\Installer.

Ora per capire il nome del prodotto reale per il file MSI rinominato ci sono due modi:

  1. Controlla LocalPackage attributo all'interno di registro nel percorso - [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersio‌​n\Installer\UserData‌​\<InternalUserId>\Pr‌​oducts\<ProductGUID>‌​\InstallProperties]. InternalUserId è una specie di tipo S-1-5-18. ProductGUID è un GUID come 00058CD18F0BF523DA1072073D56715D incorporato come proprietà pubblica all'interno del file MSI stesso. Puoi controllare questa proprietà pubblica aprendo il tuo file MSI usando qualsiasi strumento, ad es. orca

  2. Apri cartella C:\Windows\Installer in Esplora risorse. Cambia la vista della directory nella vista Details. Aggiungi colonna Subject alla vista. Whooaa !! Il mistero è risolto. Il nome del prodotto è visibile proprio lì in Subject colonna

enter image description here

Problemi correlati