2010-01-05 12 views
6

Sto tentando di eseguire un file MSI da C# utilizzando il metodo Proces.Start. Il file MSI va bene, perché posso eseguirlo normalmente, ma quando provo a eseguire il file MSI all'interno di un codice C# ricevo il seguente errore.MSI non viene eseguito da C#

"Questo pacchetto di installazione non poteva essere aperto. Verificare che il pacchetto esiste, e che è possibile accedervi, o contatto il fornitore dell'applicazione per verificare che questo è un Windows valido pacchetto installazione"

seguito è riportato il codice che sto usando per eseguire il file MSI ...

Process p = Process.StartApplication.StartupPath "/Packages/Name.msi"); 

p.WaitForExit(); 

Come posso risolvere questo problema?


OK, ho capito ora. Ho appena cambiato per eseguire il file setup.exe che viene generato con il file MSI, invece di eseguire il file MSI ...

risposta

14

file msi non possono essere eseguiti da soli. Se si fa doppio clic su di essi, Windows inizierà

msiexec /i PathToYour.msi

Hai provato a farlo in modo esplicito?

Esempio: (Per gentile concessione @Webleeuw)

Process p = new Process(); 
p.StartInfo.FileName = "msiexec"; 
p.StartInfo.Arguments = "/i PathToYour.msi"; 
p.Start(); 
+0

mi perdoni per essere ritardato, ma come faccio a farlo con il Process.Start? – Cwisking

+0

Vedere la risposta di Webleeuw per un campione completo. –

9

aggiunta alla domanda Il commento di poster sulla risposta di Benjamin:

Process p = new Process(); 
p.StartInfo.FileName = "msiexec"; 
p.StartInfo.Arguments = "/i PathToYour.msi"; 
p.Start(); 
+2

Non funziona per me. Sta mostrando la scatola dell'installatore di Windows con le istruzioni per qualche ragione. – alice7

6

E 'anche possibile eseguire il file .msi direttamente con l'associato applicazione. Questo accade quando si imposta UseShellExecute a true:

Process.Start(new ProcessStartInfo() 
    { 
     FileName = @"c:\somepath\mySetup.msi", 
     UseShellExecute = true 
    }); 
+0

questo ha funzionato per me mentre/io per qualche ragione non ... – Niklas

Problemi correlati