vc redistributable - best practices

J

Jochen Kalmbach [MVP]

Guest
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

Guest
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

 
V

vcquestions

Guest
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 ).

On Sep 4, 11:54 pm, "Jochen Kalmbach [MVP]" <nospam-
Jochen.Kalmb...@holzma.de> wrote:
> 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



 
J

Jochen Kalmbach [MVP]

Guest
vcquestions schrieb:

> tinker with fusion log & filemon and see why my assembly is not loaded
> ( when .msm(s) are installed ).


Look into EventLog, to see the detailed error message...


--
Greetings
Jochen

My blog about Win32 and .NET
http://blog.kalmbachnet.de/
 

Top