As I suspected, I brought up a clean machine and put the vcredist_x86.exe on it. I then had the same behavior where loading B.DLL in depends resolved the sxs dll's but loading A.DLL which then loaded B.DLL failed to resolve the sxs dll's unless I created a manifest for A.dll telling it that it had dependencies that B.dll had.
----- Original Message ---- From: Christopher Painter <chr...@deploymentengineering.com> To: gree...@cox.net; General discussion for Windows Installer XML toolset. <wix-users@lists.sourceforge.net> Sent: Tue, June 8, 2010 7:23:55 AM Subject: Re: [WiX-users] C++ Dependency Help I agree with you. I worked here before some 5 years ago and I had a huge battle with a coworker where he wanted to use the sxs\system32 msm's provided my Microsoft and I wanted to add the vcredist packages to our bootstrapper. I finally relented because I was sick of fighting and they have been in the baseline ever since. I've been back for 1.5 years now and it just wasn't a huge priority to me to refactor it since the dependencies are for some ugly legacy stuff we have. I'll try it but I'm thinking it still won't work because although the redist packages will populate all the various versions in the winsxs, B.DLL when loaded through A.DLL still doesn't seem to have the insight to know what version to pull. Still, I'll try it and report back what I find. BTW I also find it interesting that because A.DLL is a mixed mode assembly with dependencies on .NET 3.5 SP1 which in turns have prereq of XP SP2 that it's getting harder and harder to define what a "stripped down" XP machine is these days. I remember a day when it meant Win 95a with nothing else installed. :-) ----- Original Message ---- From: "gree...@cox.net" <gree...@cox.net> To: General discussion for Windows Installer XML toolset. <wix-users@lists.sourceforge.net> Cc: Christopher Painter <chr...@deploymentengineering.com> Sent: Mon, June 7, 2010 7:23:52 PM Subject: Re: [WiX-users] C++ Dependency Help To make things even more interesting, sometimes there are type library and COM dependencies. Also some DLL's could be delay-loaded or dynamically linked to. The Sysinternals depends tool is a great help. It is best just to bootstrap the C++ runtime (.MSI) packages. Avoid the merge modules if at all possible. I personally believe that merge modules for system dlls will create a lot of problems. You might just try installing the C++ runtimes for each flavor of Visual C++ (2005, 2008, etc) used. Try the installs on a beefed up Windows 7 VM with all the bells and whistles and then a stripped down XP Pro/Home VM and see what works, Your can beat yourself endlessly trying to result secondary/tertiary/... depencies ad infitum. Regards, Aris Green ---- Christopher Painter <chr...@deploymentengineering.com> wrote: > I have a C++ dependency issue that I'm trying to figure out. > > A.DLL depends on: ( compiled by us using VS2008 ) > MSCOREE.dll > KERNEL32.dll > MSVCM90.DLL 9.0.21022.8 > MSVCR90.dll 9.0.21022.8 > MSVCP90.dll 9.0.21022.8 > B.DLL > > B.DLL depends on: ( compiled by third party using VS2005 ) > WS2_32.dll > KERNEL32.dll > MSVCR80.dll 8.0.50727.4053 > MSVCP80.dll 8.0.50727.4053 > > In my installer I'm currently using the microsoft merge modules to deploy the > c/c++ 8/9 dll's to winsxs. Here's where it get's interesting: If I open > B.DLL in depends it resolves all DLL's. If I open A.DLL in depends it > resolves A's dependencies but for B it says that it can't find the MSVCR80 or > MSVCP80. If I copy these two DLL's into the application directory it finds > them ( even if it's the wrong version ). > > I have a hunch what's going on here but I'd really hope that someone who > really understands it could lead me to enlightenment and best practices for > this type of problem. > > Thanks, > Chris > > Christopher Painter, Author of Deployment Engineering Blog > Have a hot tip, know a secret or read a really good thread that deserves > attention? E-Mail Me > > > > > ------------------------------------------------------------------------------ > ThinkGeek and WIRED's GeekDad team up for the Ultimate > GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the > lucky parental unit. See the prize list and enter to win: > http://p.sf.net/sfu/thinkgeek-promo > _______________________________________________ > WiX-users mailing list > WiX-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/wix-users ------------------------------------------------------------------------------ ThinkGeek and WIRED's GeekDad team up for the Ultimate GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the lucky parental unit. See the prize list and enter to win: http://p.sf.net/sfu/thinkgeek-promo _______________________________________________ WiX-users mailing list WiX-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/wix-users