Как установить Visual C ++ Redist с помощью NSIS - PullRequest
0 голосов
/ 29 мая 2020

Мое приложение C ++ требует установки распространяемого пакета Visual Studio C ++. Я использую Visual Studio 2019 Community Edition. Я использую NSIS (версия 3.04) для создания своей программы установки. Следует ли мне пытаться определить, установлен ли Redist, и устанавливать его только в том случае, если он не обновлен?

1 Ответ

0 голосов
/ 29 мая 2020

Существует множество ответов о том, как это сделать, включая множество методов, как определить, установлен ли redist. Я не собираюсь говорить, что все из них неполные и не работают в методе проверки будущего, но я не добился успеха с ними. Итак, я думаю, что лучше всего всегда устанавливать Redist и позволить Microsoft позаботиться об этом. По состоянию на март 2020 года это добавит 14 МБ к вашей программе установки, но, возможно, в наш век высокоскоростного Inte rnet это уже не так уж важно, как раньше. К счастью, это довольно просто, и, надеюсь, этот вопрос помешает вам следовать всем устаревшим ссылкам и ссылкам, которые я сделал.

Инструкции по распространению от Microsoft можно найти здесь: Распространение файлов Visual C ++

Чтобы превратить это в NSIS:

Найдите файл, который вы хотите распространить, в вашей установке Visual Studio. Для меня это:

C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.25.28508\vcredist_x86.exe

Номер версии определенно может быть изменен (14.25.28508) в будущем, вероятно, только когда вы устанавливаете обновления для Visual Studio, поэтому помните, что вам нужно будет обновить этот путь, когда ваша программа установки не работает. Вам также нужно будет выбрать между vcredist_x86.exe и vcredist_x64.exe, в зависимости от того, собираете ли вы свое приложение как 32-битное или 64-битное.

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

Section "Visual Studio Runtime"
  SetOutPath "$INSTDIR"
  File "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.25.28508\vcredist_x86.exe"
  ExecWait "$INSTDIR\vcredist_x86.exe"
  Delete "$INSTDIR\vcredist_x86.exe"
SectionEnd

Подставляет правильный путь для файла redist, который вы хотите использовать.

Как написано (и текущее поведение программы redist), появится диалоговое окно, которое пользователь должен будет выполнить, чтобы установить программу redist. Вы можете заменить тихий режим:

ExecWait '"$INSTDIR\vcredist_x86.exe" /quiet'

Однако у меня не было хороших результатов с этим. YMMV.

...