2

我已经为 vs 2015 crt 合并了 msm:

<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   
---------------------------

任何想法如何正确合并它?

4

1 回答 1

4

由于 2015 版本的运行时比以前更复杂,并且合并模块基本上不足,微软似乎建议您使用其中一种 redist 可执行文件 ( vcredist_x86.exe, vcredist_x64.exe)而不是合并模块(见底部) :“不会成为通用 CRT 的合并模块

Bob Arnson在此答案中对此进行了充分解释: Redistributables for deploying C++ exe Developing with Visual Studio 2015 on Windows 7必须阅读链接- 这是答案,我刚刚添加了这个以添加更多链接)。

另外,在这个 Linux 机器上,我面前没有合并模块的列表,但也许你需要一个 x86 版本 - 你正在安装 x64 版本?只是检查 - 这些位问题让我们都发疯了。


一些链接

于 2018-07-19T12:54:33.520 回答