WIX merge C++ runtime
Я объединил MSM для 2015 CRT:
<DirectoryRef Id="TARGETDIR" >
<Merge Id = "Microsoft_VC140_CRT_x64.msm" FileCompression = "yes" Language = "1033" SourceFile = "..\\..\\..\\..\\..\\..\\..\\external\\tools\\systemsetups\\merge_modules\\Microsoft_VC140_CRT_x64.msm" DiskId = "1" />"
</DirectoryRef>
<Feature>
<Feature Id="Complete" Title="Complete" Absent="allow" Level="1">
...
<MergeRef Id="Microsoft_VC140_CRT_x64.msm"/>
...
</Feature>
но я все еще получаю:
---------------------------
MyApp.exe - System Error
---------------------------
The program can't start because mfc140u.dll is missing from your computer. Try reinstalling the program to fix this problem.
---------------------------
OK
---------------------------
Есть идеи как правильно слить?
1 ответ
Похоже, Microsoft рекомендует использовать один из переустанавливаемых исполняемых файлов (vcredist_x86.exe
, vcredist_x64.exe
) вместо модулей слияния (см. внизу) в наши дни, поскольку версии среды выполнения 2015 года более сложны, чем раньше, а модулей слияния в основном недостаточно: " Для универсального ЭЛТ модуля слияния не будет ".
Это полностью объясняется Бобом Арнсоном в этом ответе: распространяемые файлы для развертывания C++ exe, разработанные в Visual Studio 2015 в Windows 7 (должна быть ссылка для чтения - это ответ, я только что добавила эту ссылку, чтобы добавить еще несколько ссылок).
Кроме того, у меня нет этого списка модулей слияния на этом компьютере с Linux, но, возможно, вам нужна версия для x86 - вы устанавливаете версию для x64? Просто проверка - эти проблемы разрядности сводят нас всех с ума.
Некоторые ссылки: