Необходимое условие для библиотек среды выполнения Visual C++ 2010 продолжает появляться в созданной программе установки VS 2010
Я создал установщик с 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>
Выше содержится неправильный код продукта. Замените вышеуказанное на правильный код продукта для распространяемого пакета Visual C++ 2010 SP1 следующим образом:
<InstallChecks>
<MsiProductCheck Property="VCRedistInstalled" Product="{F0C3E5D1-1ADE-321E-8167-68EF0DE699A5}"/>
</InstallChecks>
Ссылка здесь показывает правильные коды продуктов для различных распространяемых VC++ 2010.
1 ответ
Это происходит потому, что предварительные критерии обнаружения неверны.
Решение состоит в том, чтобы создать собственную настраиваемую предпосылку с правильными критериями. Возможно, эта статья поможет: 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.
После создания манифестов пакета вы можете добавить все эти файлы (включая пакет) в отдельную папку в папке предварительных требований Visual Studio, например:
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\
Затем вы можете выбрать необходимое условие на странице свойств вашего проекта установки.