[CMake] InstallRequiredSystemLibraries.cmake and Redistribution of the shared C runtime component in Visual C++

Mike Jackson mike.jackson at bluequartz.net
Thu Aug 20 17:11:46 EDT 2009


On Thu, Aug 20, 2009 at 4:06 PM, James Bigler<jamesbigler at gmail.com> wrote:
> On Thu, Aug 20, 2009 at 1:51 PM, Mike Jackson <mike.jackson at bluequartz.net>
> wrote:
>>
>> On Thu, Aug 6, 2009 at 3:12 PM, Marcus D. Hanwell<marcus at cryos.org> wrote:
>> > James Bigler wrote:
>> >> On Thu, Aug 6, 2009 at 12:10 PM, Bill Hoffman
>> >> <bill.hoffman at kitware.com <mailto:bill.hoffman at kitware.com>> wrote:
>> >>
>> >>     James Bigler wrote:
>> >>
>> >>
>> >>         Well, I was using VS 2005 64 bit with SP 1.  I wonder if there
>> >>         is a similar bug or if there is something else going wrong
>> >>         such as what Marcus Hanwall described.
>> >>
>> >>
>> >>     I am not sure what your issue is, but I know I have done this many
>> >>     times...
>> >>
>> >>     -Bill
>> >>
>> >>
>> >> I checked the version numbers of the DLLs, and even checked the md5sum
>> >> and everything was the same between the dlls in the WinSxS folder and
>> >> the ones I'm distributing.  It failed on two clean systems without the
>> >> vcredist install.  I guess I'll run vcredist as Microsoft suggests and
>> >> see if I can trouble shoot later.
>> >>
>> >> It is a rather perplexing problem.
>> >>
>> > The link Bill supplied has all of the relevant information. In the
>> > "Community Discussion" section the second comment provides three
>> > possible workarounds. We are using the third of those when distributing
>> > Avogadro packages for Windows. The version mismatch in the manifests of
>> > the compiled executables and the manifest with the redistributable DLLs
>> > is what causes the issue.
>> >
>> > It seems that MS has no intention of fixing this issue. We have a clean
>> > VM where we test new installers, as occasionally this change was lost
>> > and the DLLs failed to load.
>> >
>> > Marcus
>>
>> Ok, so I too have run into this problem. What is anyone doing to get
>> around this issue?
>>
>> I would really like a solution that did NOT involve editing anything
>> from VC++ install as I would have to pass those instructions on to the
>> next Developer. Clinton's posting about including the VCRedist.exe in
>> the NSIS installer is OK by me. Is that what everyone else is doing?
>>
>> Thanks
>> --
>> Mike Jackson
>
> I ended up linking against the static CRT library (/MT), but that's not for
> everyone.
> http://msdn.microsoft.com/en-us/library/ms235460.aspx
>
> My next choice was going to be including the VCRedist.exe in the installer.
> For some of the other projects at my company, this is what they do.
>
> Here are some links I've been consulting on the subject of CRT library
> (conflicts with multiple CRTs).
> http://stackoverflow.com/questions/1075050/howto-multiple-versions-of-msvcrt9-as-private-sxs-assemblies
> http://tedwvc.wordpress.com/2009/08/10/avoiding-problems-with-vc2005-sp1-security-update-kb971090/
> http://stackoverflow.com/questions/1265792/visual-studio-2005-security-updates-and-crt-dll-versions-in-manifest
>
> James
>

thanks for the links. Now my head is really spinning. I have VC2008
Express installed on WinXP SP3 and evidently the vcredist.exe is NOT
included with that version? At least I can not find it.  So I guess I
have to download it from MSDN (duh) and then manually set all the
paths and all that in oder to have cmake/NSIS find and include it in
the installer. And I thought deploying on OS X was a bit obtuse...

Mike


More information about the CMake mailing list