2010-01-05 47 views
6

Estoy intentando ejecutar un archivo MSI desde C# utilizando el método Proces.Start. El archivo MSI está bien, porque puedo ejecutarlo normalmente, pero cuando trato de ejecutar el archivo MSI dentro de algún código C# recibo el siguiente error.MSI no se ejecuta desde C#

"Este paquete de instalación no se pudo abrir . Compruebe que el paquete existe , y que se puede acceder a ella, o contacto con el proveedor para verificar que este es un ventanas válidas paquete instalador"

a continuación se muestra el código que estoy usando para ejecutar el archivo MSI ...

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

p.WaitForExit(); 

¿Cómo puedo arreglar este problema?


OK, lo tengo ahora. Lo acabo de cambiar para ejecutar el archivo setup.exe que se genera con el archivo MSI, en lugar de ejecutar el archivo MSI ...

Respuesta

14

los archivos msi no se pueden ejecutar solos. Si hace doble clic sobre ellos, Windows se iniciará

msiexec /i PathToYour.msi

¿trató de hacerlo de forma explícita?

Ejemplo: (Cortesía @Webleeuw)

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

perdóname por ser retrasados, pero ¿cómo iba a hacer eso con el Process.Start? – Cwisking

+0

Consulte la respuesta de Webleeuw para obtener una muestra completa. –

9

adición a la pregunta comentario del autor sobre la respuesta de Benjamin:

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

No funciona para mí. Está mostrando el cuadro de instalación de Windows con las instrucciones por algún motivo. – alice7

6

También es posible ejecutar el archivo .msi directamente con el asociado solicitud. Esto sucede cuando se establece UseShellExecute a true:

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

esto funcionó para mí mientras/yo por alguna razón no ... – Niklas

Cuestiones relacionadas