vc redistributable - best practices

V

vcquestions

Hi.

I have a C++/CLI app with dependencies on ATL/CRT ( no MFC ).

1. If I install vcredist_x86 ( SDK\v2.0 ), everything on the clean
target machine works fine.

Problem: redistributable executable is too big ( as I don't need MFC &
other bloat ).

2. When I install .msm files on the target machine ( from Common Files
\Merge Modules ) specifically:

Microsoft_VC80_ATL_x86.msm
Microsoft_VC80_CRT_x86.msm
policy_8_0_Microsoft_VC80_ATL_x86.msm
policy_8_0_Microsoft_VC80_CRT_x86.msm

using msiexec.exe /i, I see all the .dll(s)/manifests under
winsxs( msvcm80.dll, msvcp80.dll, msvcr80.dll, atl80.dll ) but my dll
is not loaded ( config is incorrect. Reinstalling can fix it ).

3. When I manually copy crt-related dll(s ) and atl80.dll &
corresponding manifests ( from Microsoft Visual Studio 8\VC\redist
\x86 ) to my working directory ( on a clean machine ) - everything
works.


#3 is good for me as I can compress files and copy them easily. Is
this OK to do? ( is it a good/recommended practice )

#2 seems to be acceptable as well, but:
a ) I can't get it to work. Any ideas on what might be going wrong?
b ) I see Microsot links to redist*.exe packages, but I don't see any
downloadable .msm files. Just curious if this way is supported/
encouraged/maintained by MSFT.

Any other suggestions/ideas are appreaciated.

Thanks in advance!

vcq
 
J

Jochen Kalmbach [MVP]

Hi vcquestions!
2. When I install .msm files on the target machine ( from Common Files
\Merge Modules ) specifically:

Microsoft_VC80_ATL_x86.msm
Microsoft_VC80_CRT_x86.msm
policy_8_0_Microsoft_VC80_ATL_x86.msm
policy_8_0_Microsoft_VC80_CRT_x86.msm

using msiexec.exe /i, I see all the .dll(s)/manifests under
winsxs( msvcm80.dll, msvcp80.dll, msvcr80.dll, atl80.dll ) but my dll
is not loaded ( config is incorrect. Reinstalling can fix it ).

Maybe your msm-files are RTM and your EXE is using the SP1 version?
Be sure to also use the SP1 version of the MSM files!

Also you can always put the MS-DLLs into the same dir as your app. Also
be sure to include the "manifest"-files for these DLLs!


Greetings
Jochen
 
V

vcquestions

Thanks Jochen! *.msm files are dated 12/2/2006 while vcredist_x86 &
single files in vc\redist\x86\ directory are dated 12/1/2006. I'd
expect them to be the same version. I guess the next step would be to
tinker with fusion log & filemon and see why my assembly is not loaded
( when .msm(s) are installed ).
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top