2016-05-09 24 views
0

Ich möchte Stille Installation durchführen. Ich kenne den Befehl, der "msiexec.exe/qn" ausführt, aber ich kann das nicht tun, wenn meine Anwendung nicht als Administrator läuft. Anmerkung: - mein msi Installer WIX Toolset erstellt wirdSo führen Sie eine unbeaufsichtigte Installation ohne UAC oder App aus Wird als Administrator ausgeführt?

Process process = new Process 
     { 
      StartInfo = 
      { 
       FileName = @"msiexec.exe", 
       Arguments = string.Format(@"/i ""E:\Build 16\ColiboConnect.msi"" /qn"), 
       UseShellExecute = false, 
       RedirectStandardInput = true, 
       RedirectStandardOutput = true, 
       RedirectStandardError = true, 
       CreateNoWindow = false 
      } 
     }; 
     process.Start(); 
     process.WaitForExit(); 
+0

Wenn das möglich wäre, würden Sie nicht denken, dass viele bösen Jungs das ausnutzen würden? – rene

+0

startInfo.Verb = "runas"; –

+1

Sie brauchen UseShellExecute = true, damit das Verb "runas" funktioniert. Ich würde auch in Erwägung ziehen, "/ l * v logpath \ logfile.txt" an die cmd-Zeile von msiexec zu senden, damit Sie irgendwo eine Protokolldatei erhalten können. –

Antwort

0

Wir haben unser Problem mit Windows Service gelöst. Unsere App wird die neue msi herunterladen, dann einen WCF-Dienst aufrufen, den Pfad des Installers übergeben und der Dienst wird die neue Version ohne Probleme installieren, da unser Dienst unter lokalem Account-System ausgeführt wird und ich denke, dies ist die einzige unterstützte Lösung

1

Du forderst schweigt MSI-Installation wird daher MSI keine UI angezeigt werden - noch die UAC-Dialog.

Ihr übergeordneter Prozess muss bereits mit erhöhten Rechten ausgeführt werden, oder Sie müssen eine Erhöhung von Windows anfordern und das Berechtigungstoken verwenden, um einen neuen Prozess auszuführen.