Ich versuche MSI durch Code zu installieren, und ich kam in dieser Lösung Programatically installing MSI packagesInstaller.InstallProduct wirft Ausnahme
Code:
public static void Install()
{
try
{
Type type = Type.GetTypeFromProgID("WindowsInstaller.Installer");
Installer installer = (Installer)Activator.CreateInstance(type);
installer.InstallProduct("D:\\Applications\\TortoiseSVN-1.9.3.27038-x64-svn-1.9.3", "ACTION=INSTALL");
}
catch(Exception e)
{
Utilities.showErrorMessageBox(e.Message);
}
}
Die Ausnahme, die ich bekommen hat diese nicht beschreibende Nachricht: {“ InstallProduct, PackagePath, PropertyValues "}
Ich weiß nicht, welchen Sinn es zu machen. Ich habe auch verschiedene Kombinationen von PropertyValues ausprobiert, aber ohne Erfolg.
Kann jemand den Grund für diesen Fehler erklären?
EDIT
mit dem folgenden Werke:
System.Diagnostics.Process.Start("D:\\Applications\\TortoiseSVN-1.9.3.27038-x64-svn-1.9.3.msi");
So ist dieses Verfahren so fein wie der Installer?
Ich bemerke nur den ersten Code nicht die ". MSI" im Dateipfad? –
Ja, das habe ich verpasst, aber immer noch die gleiche Ausnahme, auch nachdem ich .msi im Pfad hinzugefügt habe –
Ich habe nie die Installer-API benutzt, um Installationen zu starten, habe nie den Vorteil darin gesehen. Ich benutze nur die MSI mit Process.Start wie Sie, aber ich empfehle mit: msiexec.exe/i –
yossiz74