Ошибка с настраиваемым действием в Visual Studio 2008 - PullRequest
1 голос
/ 27 июля 2011

Я очень новичок в мире C #, хотя я пытаюсь изменить установщик с помощью пользовательских действий.Я пытаюсь запустить пакетный скрипт после завершения установки.Я использую следующий класс установщика:

namespace PostInstall
{
    [RunInstaller(true)]
    public partial class Installer1 : Installer
    {
        public Installer1()
        {
            InitializeComponent();

            System.Diagnostics.Process.Start("PostInstall.bat");
        }
    }
}

Проект с именем PostInstall содержит файл * .cs с кодом выше.Проект создается по этой ссылке в разделе «Создание настраиваемого действия».В проекте установки я добавил основной вывод проекта PostInstall в узле Install & Commit, как описано в ссылке.

Однако в конце установки появляется следующая ошибка:

Ошибка 1001. Невозможно создать экземпляр Тип установщика PostInstall.Installer1 -> Исключение было сгенерировано целью вызова.-> Система не может найти указанный файл.

Я проверил, что PostInstall.bat существует в каталоге установки.Почему происходит ошибка и как ее устранить?

Ответы [ 2 ]

2 голосов
/ 27 июля 2011

Я думаю, что установочный каталог не является автоматически каталогом, в котором запускается установщик, поэтому вы не можете предполагать, что Process.Start("PostInstall.bat") найдет командный файл.

Эта статья DevCity является очень хорошим введением в эту тему и рассказывает, как передать каталог установки вашим объектам настраиваемых действий, чтобы вы могли создать полный путь для пакетафайл.

Задумывались ли вы о том, что произойдет во время работы вашего пакетного файла?Вы хотите подождать, пока он не будет завершен, прежде чем переходить к следующему этапу установки?

0 голосов
/ 27 июля 2011

В идеале пользовательские действия должны быть написаны в собственном коде, если в вашем случае это невозможно, попробуйте запустить .msi от имени администратора

...