Ответ 1
Ниже приведены ссылки на правильные загрузки для установщика MSVCRT100. Скорее всего, вы хотите, чтобы ваши клиенты запускали до установки вашего приложения. Это правильно установит DLL файлы MSVCRT в соответствующий каталог, чтобы все приложения могли его использовать.
Распространяемый пакет Microsoft Visual С++ 2010 (x86) (возможно, что вам нужно для 32-разрядных и 64-разрядных ОС)
Распространяемый пакет Microsoft Visual С++ 2010 (x64) (Только если ваше приложение является 64-разрядным)
Если вы действительно хотите установить DLL файлы MSVCRT100 через модуль слияния в своей собственной MSI, вы можете связать свой MSI с MSM, которые находятся в версии x86, ваши "c:\program files\common files\merge modules" directory "(Предположим, что у вас установлена Visual Studio 2010).
C:\Program Files (x86)\Common Files\Merge Modules>dir *CRT*.msm
Volume in drive C has no label.
Volume Serial Number is 60A4-1718
Directory of C:\Program Files (x86)\Common Files\Merge Modules
04/22/2011 01:18 PM 584,192 Microsoft_VC100_CRT_x64.msm
04/22/2011 01:41 PM 571,904 Microsoft_VC100_CRT_x86.msm <-- This is likely the MSM you want if your app is 32-bit.
04/22/2011 01:14 PM 847,360 Microsoft_VC100_DebugCRT_x64.msm
04/22/2011 01:39 PM 801,792 Microsoft_VC100_DebugCRT_x86.msm
Две другие альтернативы: Вместо копирования MSVCRT100.dll в системный каталог скопируйте его в каталог приложения EXE, которое вы пытаетесь запустить, и это зависит от этой DLL. Это не рекомендуется, но не будет угрожать взломом других приложений.
Другая альтернатива. Если у вас действительно есть исходный код EXE, который вы пытаетесь запустить, вы можете полностью обойти весь этот "установочный msvcrt100.dll" шум, просто статически связавшись с ним. В визуальной студии это опция в диалоговом окне проекта по C/С++ (на вкладке "Генерация кода" ). Измените "библиотеку времени выполнения" из "Многопоточной Dll" на простое "многопоточное". Это добавляет переключатель компилятора/MT.