Я пытаюсь установить MSI через код, и я наткнулся на это решение Programatically installing MSI packagesInstaller.InstallProduct бросает исключение
Код:
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);
}
}
Исключение я имеет эту неоднозначность описательное сообщение: {» InstallProduct, PackagePath, PropertyValues "}
Я не знаю, какой смысл это сделать. Я также пробовал различные комбинации PropertyValues, но безрезультатно.
Может кто-нибудь объяснить причину этой ошибки?
EDIT
Используя следующие работы:
System.Diagnostics.Process.Start("D:\\Applications\\TortoiseSVN-1.9.3.27038-x64-svn-1.9.3.msi");
Таким образом, этот метод так хорошо, как с помощью программы установки?
Я просто заметил, что первый код не имеет «.msi» в пути к файлу? –
Да, я пропустил это, но все же получаю такое же исключение даже после добавления .msi в пути –
Я никогда не использовал API-интерфейс установщика для запуска установок, никогда не видел в этом преимущества. Я просто запускаю msi, используя Process.Start, как вы, но я рекомендую использовать: msiexec.exe/i –
yossiz74