Распространение VC++ Redist... запуск установщика, когда он уже установлен, вызывает проблемы

Используя установщик Inno, мы распространяем распространяемый VC++ вместе с нашим приложением, чтобы мы могли запускать его автоматически. Мы обнаружили, что при запуске его в системе, в которой он уже установлен, мы просим исправить / отменить установку, которая может полностью запутать пользователей.

Это можно обойти? Может быть, флаг на установщике или что-то?

Благодарю.

4 ответа

Решение

Попробуйте флаг /q http://support.microsoft.com/kb/227091 (при условии, что вы устанавливаете его с помощью вызова msiexec.exe для их распространяемого)

По какой-то причине ни один из приведенных выше ответов не работал для меня. Это сделал, однако:

[Run]
Filename: {tmp}\vcredist_x86.exe; Parameters: "/passive /Q:a /c:""msiexec /qb /i vcredist.msi"" "; StatusMsg: Installing 2010 RunTime...
[Files]
Source: vendor/vcredist_x86.exe; DestDir: {tmp}

Я получил подсказку для этого, запустив vcredist_x86.exe /?, Как отмечено в нижней части этой темы: http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/a8d4d5b4-7927-4c86-95e8-3cd8b3018ae8/

В качестве дальнейшего примечания, еще один возможный вариант для перераспределения - просто статическая ссылка на (вашу версию) msvcrt, см. Комментарии в http://blogs.msdn.com/b/vcblog/archive/2007/10/12/how-to-redistribute-the-visual-c-libraries-with-your-application.aspx (хотя MS, видимо, недовольна этим типом статического связывания, по крайней мере, вам не понадобится dll).

Распространение библиотек времени выполнения Visual C++ (MSVCRT) также может быть полезным.

Также обратите внимание, что если вы можете гарантировать, что у вас есть контроль, вы можете просто включить msvcr100.dll в тот же каталог, что и ваш исполняемый файл, и это тоже будет работать, хотя и не очень стандартное решение.

Эта тема разрешила мои проблемы:

(взято из комментария в другом ответе)

Хотя это не относится к установщику Inno, этот связанный вопрос предоставляет решение для проекта установки Visual Studio 2010. Проблема связана с тем, что пакет обновления 1 (SP1) vcredist изменил код продукта, тогда как Visual Studio использует старый код. Вот почему уже установленная проверка не проходит.

Необходимое условие для библиотек среды выполнения Visual C++ 2010 продолжает появляться в созданной программе установки VS 2010

Другие вопросы по тегам