Gewusst wie: ausführen der msi-installer in cmd als admin mit C#

Ich habe ein msi-installer, den ich brauche, um es zu installieren lautlos aus der C# -

Process process = new Process();
process.StartInfo.FileName = "cmd.exe";
process.StartInfo.WorkingDirectory = @"C:\temp\";
process.StartInfo.Arguments = "msiexec /quiet /i Setup.msi ADDLOCAL=test";
process.StartInfo.Verb = "runas";
process.Start();
process.WaitForExit(60000);

erwähnenswert, dass der cmd-Befehl ist in Ordnung, wenn ich manuell ausführen über die cmd als admin

wenn ich es laufen lasse bekomme ich nur die cmd-Bildschirm im admin-Modus, aber der Befehl wird nicht ausgeführt

  • Was ist dein problem mit diesem code? Keine Fehlermeldung?
  • Überprüfen Sie bitte diesen Link stackoverflow.com/questions/16926232/...
  • wenn ich es laufen lasse bekomme ich nur die cmd-Bildschirm im admin-Modus, aber der Befehl wird nicht ausgeführt
  • Ich wusste, dass, aber ich brauche zu installieren, die die msi leise
  • Warum nicht Sie gerade ausführen msiexec anstelle von cmd? Und nur für den Fall Sie können WindowStyle auf Hidden.
  • ja, aber ich bekomme en Ausnahme : Das system kann nicht die angegebene Datei gefunden
  • Ich glaube, Sie brauchen, erwähnen vollständigen Pfad der msi
  • Sie müssen erwähnen vollständigen Pfad der msi-Prozess.StartInfo.Arguments = string.Format(" /qb /i \"{0}\" "ALLUSERS=1", sMSIPath);
  • Ich Tat das, aber es ist immer noch das gleiche, bekomme ich nur die cmd läuft als admin nichts anderes ist , könnten Sie bitte das Beispiel von oben und Bearbeiten Sie es ?
  • Ich denke, Sie müssen zu zitieren, der parameter-string in Arguments. Ansonsten die Parameter werden als Parameter interpretiert, um cmd.exe, nicht zu msiexec.
  • wie das ? "msiexec //ruhig //i Setup.msi ADDLOCAL=test"
  • Nein, wie "\"msiexec ...\"".
  • leider hat das nicht funktioniert auch !
  • Ich habe deinen code, aber ich erhielt den Fehler nicht finden können, die Datei angegeben. Process process = new Process(); process.StartInfo.FileName = "msiexe.exe"; // Prozess.StartInfo.WorkingDirectory = @"C:\temp\"; string Pfad = System.IO.- Verzeichnis.GetCurrentDirectory() + "\\Setup1.msi"; Prozess.StartInfo.Arguments = "msiexec /quiet /i" + Pfad; Prozess.StartInfo.Verb = "runas"; Prozess.Start(); process.WaitForExit(60000);
  • auch ich habe die Setup1.msi Standorte
  • Oh, wie hier beschrieben mehrmals GetCurrentDirectory nicht unbedingt das Verzeichnis zurückzugeben, als du denkst! Je nachdem, wie und von wo Sie starten Sie die Anwendung, das kann sich aus dem Verzeichnis der exe befindet!

InformationsquelleAutor Ateeq | 2014-09-09
Schreibe einen Kommentar