[wix-users] VC redist merge module: 64-bit DLL copied to 32-bit Windows folder
Phil Wilson
phil.wilson at mvps.org
Tue Sep 1 11:36:57 PDT 2015
I'd check the Component table in the msm to be sure that it's got the 256
bit (64 bit) set in the attributes. Everything else seems ok at a quick
glance.
Phil
-----Original Message-----
From: wix-users [mailto:wix-users-bounces at lists.wixtoolset.org] On Behalf Of
Daan Nusman
Sent: Tuesday, September 01, 2015 4:15 AM
To: wix-users at lists.wixtoolset.org
Subject: [wix-users] VC redist merge module: 64-bit DLL copied to 32-bit
Windows folder
Hi everyone,
I need to include the VS2015 C++ x64 runtime merge module into my project.
The install works without errors, and my own files are copied correctly,
however my app cannot start due to msvcp140.dll not being found.
I've extracted an installer log, and it seems to claim to have installed the
files. Here's an example:
MSI (s) (BC:40) [11:56:18:667]: Executing op:
SetTargetFolder(Folder=C:\Program Files\RE-liON\RLaunch\)
MSI (s) (BC:40) [11:56:18:667]: Executing op:
SetSourceFolder(Folder=1\RE-liON\RLaunch\)
MSI (s) (BC:40) [11:56:18:667]: Executing op:
FileCopy(SourceName=RLaunch.exe,SourceCabKey=MainAppExe,DestName=RLaunch.exe
,Attributes=512,FileSize=315904,PerTick=65536,,VerifyMedia=1,,,,,CheckCRC=0,
Version=1.0.0.1,Language=1033,InstallMode=58982400,,,,,,,)
MSI (s) (BC:40) [11:56:18:667]: File: C:\Program
Files\RE-liON\RLaunch\RLaunch.exe; To be installed; Won't patch;
No existing file
MSI (s) (BC:40) [11:56:18:667]: Source for file 'MainAppExe' is compressed
MSI (s) (BC:40) [11:56:18:683]: Executing op:
SetTargetFolder(Folder=C:\Windows\SysWOW64\)
MSI (s) (BC:40) [11:56:18:683]: Executing op:
SetSourceFolder(Folder=1\System64\)
MSI (s) (BC:40) [11:56:18:683]: Executing op:
FileCopy(SourceName=msvcp140.dll,SourceCabKey=msvcp140.dll.A38EBF59_3A35_375
9_B824_C9816882FA56,DestName=msvcp140.dll,Attributes=512,FileSize=635040,Per
Tick=65536,,VerifyMedia=1,,,,,CheckCRC=0,Version=14.0.23026.0,Language=1033,
InstallMode=58982400,,,,,,,)
MSI (s) (BC:40) [11:56:18:683]: File: msvcpm; To be installed; Won't
patch; No existing file
MSI (s) (BC:40) [11:56:18:683]: Source for file
'msvcp140.dll.A38EBF59_3A35_3759_B824_C9816882FA56' is compressed
So, it copies a msvcp140.dll to the SysWOW64 folder. Oops, that should be
target for 32 bit DLLs, this DLL should to go System32. I've confirmed
(using Dependency Walker) that the file is indeed in SysWO64 and is 64 bits.
I cannot figure out how to fix this. Am I missing some x64 flags?
Relevant wsx part:
<Directory Id="TARGETDIR" Name="SourceDir"> <!-- runtime-value of
TARGETDIR: C:\ -->
<!-- Merge module for Visual C++ Runtime DLLs (msvcp140.dll) -->
<!-- Location usually C:\Program Files (x86)\Common Files\Merge
Modules -->
<!-- You will need to update this when you update visual C++-->
<Merge Id="CRT" Language="0"
SourceFile="$(env.CommonProgramFiles)\Merge
Modules\Microsoft_VC140_CRT_x64.msm" DiskId="1" />
The complete log: http://pastebin.com/JJwmzsFd (copies seem to start
around line 620)
The complete source .wsx file: http://pastebin.com/jnnBUiBe
Thanks,
Daan Nusman
____________________________________________________________________
WiX Toolset Users Mailing List provided by FireGiant
http://www.firegiant.com/
More information about the wix-users
mailing list