MSI не работает из C#

Я пытаюсь выполнить файл MSI от C# с помощью Proce. Запустите метод. Файл MSI прекрасен, потому что я могу выполнять это обычно, но когда я пытаюсь выполнить файл MSI в рамках некоторого кода C#, я получаю следующую ошибку.

"Этот пакет установки не мог быть открыт. Проверьте, что пакет существует, и что можно получить доступ к нему или связаться с поставщиком приложений, чтобы проверить, что это - допустимый пакет установщика Windows"

Ниже код, который я использую для выполнения файла MSI...

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

p.WaitForExit();   

Как я могу решить эту проблему?


Хорошо, я получил его теперь. Я просто изменил его для выполнения файла setup.exe, который сгенерирован с файлом MSI вместо выполнения файла MSI...

7
задан Peter Mortensen 14 December 2013 в 01:45
поделиться

3 ответа

msi файлы не могут запускаться сами по себе. Если дважды щелкнуть на них, Windows запустит

msiexec /i PathToYour.msi

Вы пытались сделать это явно?

Пример: (любезно @Webleeuw)

Process p = new Process();
p.StartInfo.FileName = "msiexec";
p.StartInfo.Arguments = "/i PathToYour.msi";
p.Start();
15
ответ дан 6 December 2019 в 05:48
поделиться

Добавление к плакату вопроса комментарий к ответу Бенджамина:

Process p = new Process();
p.StartInfo.FileName = "msiexec";
p.StartInfo.Arguments = "/i PathToYour.msi";
p.Start();
9
ответ дан 6 December 2019 в 05:48
поделиться

Также возможно выполнение .msi файла непосредственно с ассоциированным приложением. Это происходит при установке UseShellExecute в true:

Process.Start(new ProcessStartInfo() 
{ 
    FileName = @"c:\somepath\mySetup.msi", 
    UseShellExecute = true 
});
8
ответ дан 6 December 2019 в 05:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: