[CMake] Not matching versions of MSVC Runtime Libraries in Manifest

Michael Jackson mike.jackson at bluequartz.net
Tue Aug 9 15:56:23 EDT 2011



On Aug 9, 2011, at 3:30 PM, David Partyka wrote:

> Very cool! 
> 
> +1
> 
> On Tue, Aug 9, 2011 at 3:28 PM, David Cole <david.cole at kitware.com> wrote:
> On Tue, Aug 9, 2011 at 3:27 PM,  <clinton at elemtech.com> wrote:
> >
> > Here's my (not so complete) understanding...
> > Public assemblies are searched before private ones.
> > http://msdn.microsoft.com/en-us/library/aa374224(v=vs.85).aspx
> >
> > So, on your machine, you have the required CRT libraires in the winsxs folder.
> > You also have a redirection that says to use a newer CRT library if a particular older one is requested.
> >
> > If another machine that you copy this software to doesn't have a shared CRT that will work, it falls back to the one you copied next to your application.
> >
> > So its a way to get updates and bug fixes to the CRT via windows updates, but still allow your application to work on older machines without the newer dlls, by using the ones you provided.
> >
> > Clint
> >
> > ----- Original Message -----
> >> Yes, I think part of the issue is what is mentioned and I do have
> >> plugins (Qt based) and have taken the steps he lays out. But I am
> >> still curious as to why Dependency Walker says it is using one
> >> version of the runtime libraries when the Manifest (both external
> >> and embedded) says to use another. I am probably just missing
> >> something basic in all of this.
> >>
> >> ___________________________________________________________
> >> Mike Jackson                      www.bluequartz.net
> >>
> >> On Aug 9, 2011, at 3:07 PM, Michael Wild wrote:
> >>
> >> > On Tue 09 Aug 2011 06:48:34 PM CEST, Michael Jackson wrote:
> >> >> Not sure if this is a CMake issue or not but I'll give it a shot.
> >> >> I am packaging up my application using CPack (zip) and all seems
> >> >> fine. I get the MSVC runtime libraries copied and the manifest
> >> >> file created and all seems to run just fine. If I use Dependency
> >> >> Walker to look at exactly _which_ C/C++ runtime DLLs are being
> >> >> loaded it seems to indicate a newer version than what the
> >> >> manifest is saying. My Application seems to be requesting version
> >> >> 9.0.21022.8 in its manifest and in the executable itself
> >> >> (Embedded Manifest) but Dependency Walker says it is really
> >> >> loading the 9.0.30729.490 version from the winsxs folder. I am
> >> >> still really new to this with Visual Studio so I am not sure if I
> >> >> am doing something incorrect when writing the CPack code,
> >> >> something in Visual Studio, how I compiled all the dependent
> >> >> libraries or what but any help or pushes in a better direction
> >> >> would be greatly appreciated.
> >> >>
> >> >> System: Windows 7 X64 Pro. Visual Studio 2008. Compiling
> >> >> everything as 64 bit. The actual executables can be downloaded
> >> >> from http://dream3d.bluequartz.net.
> >> >>
> >> >> Thanks in advance.
> >> >
> >> >
> >> > Not sure, but could it be the issue mentioned in Bills blog?
> >> >
> >> > http://www.kitware.com/blog/home/post/4
> >> >
> >> > Michael
> 
> 
> Thanks for this pointer, Clinton. I'll add a comment to Bill's blog
> article that also points to this Microsoft page... Good reference.
> 
> :-)
> David
> 

Thanks for all the explanations and web links. I think I have a better understanding of what is going on and how things are getting loaded. I'll talk to my customer about some more testing to make sure the changes I made corrected the loading bug.

--
Mike Jackson <www.bluequartz.net>


More information about the CMake mailing list