Среда выполнения библиотек Visual C ++ 2010 продолжает появляться в созданной программе установки VS 2010 - PullRequest
22 голосов
/ 16 октября 2011

Я создал установщик с Visual Studio 2010 версии 10.0.40.219.1 SP1 Rel. Мое приложение построено / скомпилировано для x86 и требует библиотеки времени выполнения VC ++. Таким образом, проект установки настраивается с библиотеками времени выполнения VC ++ в качестве предварительного условия.

Каждый раз, когда я запускаю установщик, я получаю всплывающее окно «Следующие компоненты будут установлены на вашем компьютере». Msgstr "Библиотеки времени выполнения Visual C ++ 2010 (x86)". Первый раз он устанавливается как ожидалось. Второй и последующие разы меня спрашивают, нужно ли восстанавливать или удалять VC ++ 2010.

Это всплывающее окно должно отображаться только один раз, при первом обнаружении, что распространяемый VC ++ не установлен.

Кто-нибудь видел это? Кто-нибудь знает, как я могу это исправить?

Решение:

Ответ, который я принял, дал мне то, что мне нужно было решить проблему. Вот подробности того, что я сделал, чтобы это исправить, что на самом деле было очень просто. Я отредактировал файл:

C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\vcredist_x86\product.xml

В этом файле вы найдете следующее:

<InstallChecks>
    <MsiProductCheck Property="VCRedistInstalled" Product="{6EE91C1A-A2E7-38CD-AEBB-3B900A4D8868}"/>
</InstallChecks>

Выше указан неправильный код продукта. Замените вышеуказанное на правильный код продукта для распространяемого пакета обновления 1 для Visual C ++ 2010 следующим образом:

<InstallChecks>
    <MsiProductCheck Property="VCRedistInstalled" Product="{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}"/>
</InstallChecks>

Ссылка здесь показывает правильные коды продуктов для различных распространяемых VC ++ 2010.

1 Ответ

14 голосов
/ 17 октября 2011

Это происходит из-за неправильных критериев обнаружения предварительных условий.

Решением является создание собственной пользовательской предпосылки с правильными критериями.Возможно, эта статья поможет: http://blogs.msdn.com/b/astebner/archive/2010/05/05/10008146.aspx

Проекты установки Visual Studio не поддерживают это.Но это можно сделать, вручную создав необходимые манифесты.

Вы можете найти структуру манифестов здесь: http://msdn.microsoft.com/en-us/library/ms229223(VS.80).aspx

Эти манифесты могут быть сгенерированы автоматически с помощью Bootstrapper Manifest Generator tool.

После создания манифестов пакета вы можете добавить все эти файлы (включая пакет) в отдельную папку в папке предварительных требований Visual Studio, например:

C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\

Затем вы можете выбрать необходимое условие на странице свойств вашего проекта установки.

...