- Microsoft Visual C++ 2005 Redistributable Package (x86)
- Microsoft Visual C++ 2005 Redistributable Package (x64)
- Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)
- Microsoft Visual C++ 2005 SP1 Redistributable Package (x64)
- Microsoft Visual C++ 2008 Redistributable Package (x86)
- Microsoft Visual C++ 2008 Redistributable Package (x64)
- Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)
- Microsoft Visual C++ 2008 SP1 Redistributable Package (x64)
Так как же быть? Создадим такой package сами. Открываем Visual Studio, создаем новый solution. В диалоге выбора типа проекта выбираем Other Project Typoes|Setup Project. Потом добавляем необходимые merge module в проект и компилируем. Учтите, что для каждой платформы будь то x86 или x64 необходимо создать свой project в solution. Не забываем добавлять соответствующие policy. В х64 вариант обьязательно добавляем merge module для x86. Ниже приведен список необходимых merge module для:
- Microsoft_VC80_DebugCRT_x86.msm
- policy_8_0_Microsoft_VC80_DebugCRT_x86.msm
Visual Studion 2005 (DebugCRT x64)
- Microsoft_VC80_DebugCRT_x86.msm
- Microsoft_VC80_DebugCRT_x86_x64.msm
- policy_8_0_Microsoft_VC80_DebugCRT_x86.msm
- policy_8_0_Microsoft_VC80_DebugCRT_x86_x64.msm
Visual Studion 2008 (DebugCRT x86)
- Microsoft_VC90_DebugCRT_x86.msm
- policy_9_0_Microsoft_VC90_DebugCRT_x86.msm
Visual Studion 2008 (DebugCRT x64)
- Microsoft_VC90_DebugCRT_x86.msm
- Microsoft_VC90_DebugCRT_x86_x64.msm
- policy_9_0_Microsoft_VC90_DebugCRT_x86.msm
- policy_9_0_Microsoft_VC90_DebugCRT_x86_x64.msm
Если вы используете MFC, то дополнительно добовляете MFC merge module в соответствующий проект по аналогии - имена должны содержать DebugMFC.
Остается только скомпилировать ваш solution и в результате вы получите msi для установки на компьютере клиента. Рекомендую также правильно и солидно назвать исталляцию и сменить имя msi файла, чтобы на стороне клиента это все не выглядело поделкой на коленке.
P.S. Стиль когда нужные сисетмные DLL кладутся в проект рядом с вашим приложением на мой взгляд является анахронизмом, хоть и работает. С другой стороны мне несложно придумать конфигурацию, когда такой фокус уже не прокатит. Самый простой пример: ваше приложение для x86 и для x64 лежат в одном каталоге.
P.P.S Все доступные merge module хрянятся в "%CommonProgramFiles%\Merge Modules".
1 comment:
Спасибо, ваша заметка помогла в решении моей проблемы с MSVS++ 2008 SP1 и ее MFC пакетом ( http://23w.livejournal.com/3744.html ).
Только наверное студия не совсем подходит к построению такого пакета Release + Debug модулей, т.к. в ней нет возможности сделать инсталлятор в котором отключена возможность деинсталяции. Иначе, сняв пакет снимаются и VC модули (даже если они до этого были установлены в системе другим инсталлятором), проверено на XP.
Post a Comment