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? Просто проверка - эти проблемы разрядности сводят нас всех с ума.


Некоторые ссылки:

Другие вопросы по тегам