Установите Visual C++ Redistributables 2005 во время установки установки

Мне все еще нужно установить распространяемые компоненты Microsoft C++ 2005 в процессе установки моей службы Windows (проект установки Visual Studio). У меня уже есть программа, которая устанавливает эти пакеты в фоновом режиме. Это программирование работает. Теперь я хочу вызвать это программирование, когда служба Windows установлена. Но затем я всегда получаю сообщение об ошибке Другая программа устанавливается, подождите, пока установка не будет завершена, а затем повторите попытку установки программного обеспечения. Я уже перепробовал все методы класса ProjectInstaller (OnBeforeInstall, OnAfterInstall, Commit) - ничего не работает. Но в предварительных требованиях по умолчанию я не могу выбрать этот пакет, потому что он слишком старый.

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

Большое спасибо! :)


person nicetomitja    schedule 02.05.2021    source источник
comment
На скорую руку несколько ссылок: О среде выполнения Visual Studio C++. В VS: щелкните правой кнопкой мыши основной проект установки, выберите «Свойства» => Предварительные требования. Добавление пользовательских предварительных условий в проект установки, Создание пакетов Bootstrapper.   -  person Stein Åsmul    schedule 04.05.2021


Ответы (1)


Вы можете выполнить следующие шаги, чтобы установить Microsoft C++ 2005 Redistributables во время установки установки:

  1. Подпишитесь на этот документ чтобы создать пользовательское действие для вашего проекта установки.
  2. Добавьте эти коды в метод установки
    public override void Install(System.Collections.IDictionary stateSaver)
    {
        base.Install(stateSaver);

        Process myProcess = new Process();

        myProcess.StartInfo.FileName = @"{Your Directory}\vcredist_x86.EXE";

        myProcess.StartInfo.Arguments = "/Q";      //install automactically

        myProcess.StartInfo.CreateNoWindow = true;

        myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Normal;

        myProcess.StartInfo.Verb = "runas";        //run exe as administrator(Important!)

        myProcess.Start();
    }
person Dylan Zhu-MSFT    schedule 04.05.2021
comment
Еще вопрос по этому поводу. Я хочу установить x86 и x64 Redistributables один за другим. Как я могу настроить их? К сожалению, я не знаю точно, когда завершится первая установка и смогу приступить ко второй. Есть ли хитрость? - person nicetomitja; 09.05.2021
comment
Вы можете создать новое действие для установки пакета x64 - person Dylan Zhu-MSFT; 11.05.2021
comment
вы полностью правы - легко. Благодарю вас! - person nicetomitja; 14.05.2021