Linker generated Manifest version differs from Redist versions

  • Thread starter Thread starter Guest
  • Start date Start date
G

Guest

I am finding that the linker for a C++ application in VS 2005 is generating a
manifest with old version #s for DLLs such as mfc80.dll.

How do I make sure that the linker generates a manifest that reflects the
correct versions numbers of the DLLs?
My application appears not to run on the target XP because of this mismatch.

Thanks!
 
Hi HarryH!
I am finding that the linker for a C++ application in VS 2005 is generating a
manifest with old version #s for DLLs such as mfc80.dll.

How do I make sure that the linker generates a manifest that reflects the
correct versions numbers of the DLLs?

Have you took a look into the "SxS\Policy" folder!?
There is a policy for every file which redirects the older version to
the newer dll ;-)

My application appears not to run on the target XP because of this mismatch.

No. This is not the case. It will run, if you either
- have installed the vc_redist.exe in the SxS folder
- put the DLLs with the accoring manifest from the redist directory in
the same dir as the app

--
Greetings
Jochen

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

Some further questions then please.

My development XP machine defintely has the policy upgrade as you suggest -
but then why does the manifest get created with an older version#?

Also the target XP has also policy upgrade - but it does not reach the
correct version number of my redistributable DLLs?

I will look at your following suggestion:
"It will run, if you either
- have installed the vc_redist.exe in the SxS folder
- put the DLLs with the accoring manifest from the redist directory in
the same dir as the app"

Thanks!
 
Hi HarryH!
My development XP machine defintely has the policy upgrade as you suggest -
but then why does the manifest get created with an older version#?

It seems that the CRT sources/h-files are checked in earlier than the
CRT build was done (which is quite normal).
(in the h-file the manifest is added to your linker settings via #pragma...)
Also the target XP has also policy upgrade - but it does not reach the
correct version number of my redistributable DLLs?

Why not!?
The CRT has the version "8.0.50727.42"
And the redirect will be from "8.0.41204.256-8.0.50608.0" to this new
version...

Also if you use the local manifest for app-local assemblies, then the
manifest contains the correct version "8.0.50608.0". The version of the
DLL is then not checked...
I will look at your following suggestion:
"It will run, if you either
- have installed the vc_redist.exe in the SxS folder
- put the DLLs with the accoring manifest from the redist directory in
the same dir as the app"

See also:
http://www.codeproject.com/cpp/vcredists_x86.asp


--
Greetings
Jochen

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

You have provided me great information here!

My problem was indeed an issue with the vcredist_x86 as you noted.
My previous constructions were correct but were missing this important piece
on the target platform. Now on to get installshield to execute vcredist_x86.

Thanks very much!
 
Back
Top