2010-01-05 15 views
6

içinden çalışmaz Proces.Start yöntemini kullanarak C# 'den bir MSI dosyasını çalıştırmaya çalışıyorum. MSI dosyası iyi, çünkü normal olarak çalıştırabilirim, ancak MSI dosyasını bazı C# kodları içinde çalıştırmaya çalıştığımda aşağıdaki hatayı alıyorum.MSI, C#

"Bu yükleme paketi paket var olduğunu doğrulayın. Açılamadı ve bunu erişebilmeleri veya kontak uygulama satıcısı bu geçerli pencereleri yükleyici paketi olduğunu doğrulamak"

Aşağıda

nasıl yapabilirim MSI dosyasını çalıştırmak için kullanıyorum kod ...

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

p.WaitForExit(); 

olduğunu Bu sorunu düzeltmek mi?


Tamam, şimdi anladım. Ben sadece MSI dosyasını çalıştırmak yerine MSI dosyasıyla oluşturulmuş olan setup.exe dosyasını çalıştırmak için değiştirdim ...

cevap

14

msi dosyaları kendi başlarına çalışamaz. Üzerlerinde tıklayın çift, Windows

msiexec /i PathToYour.msi

açıkça bunu denediniz mi başlayacak?

Örnek: (Nezaket @Webleeuw)

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

engelli olduğum için beni affet, ama Process.Start ile nasıl yapayım: Eğer UseShellExecutetrue ayarlandığında bu gerçekleşir? – Cwisking

+0

Webleeuw'un tam bir örnek için yanıtına bakın. –

9

eklenmesi Benjamin'in Yanıta Yazarın yorumunu sorgulamaya:

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

Benim için çalışmıyor. Windows yükleyici kutusunu bazı nedenlerle yönergelerle gösterir. – alice7

6

O ilişkili doğrudan .msi dosyasını çalıştırmak da mümkündür uygulama.

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

bu benim için çalıştı/ben bir nedenden dolayı ... – Niklas

İlgili konular