I would only add dependencies in the manifest for immediate dependencies only . Don't add dependencies for B to A. For the mixed mode C++ dlls, they'l depend on their .NET assemblies they consume along with the version of the C/C++ runtime that their flavor of Visual Studio depends on.
For mixed mode .NET C++, there is always a manifest dependency to the C++ runtime DLL's, there is no static linking to the C++ runtime. Also, it is a Win SxS dependencies. Check the manifest (RT_MANIFEST) resource using the Visual C++ resource editor. Make sure that the C++ runtime you install matches that of the manifest in the .NET DLL (A or B). This is not the .NET manifest, it is a resource inside the DLL. The Win SxS assemblies are native assemblies. I have been burned by this before. You might want to review the MSDN docs on the Win SxS cache. They have been around since Windows XP. They will help out a lot. By looking at the RT_MANIFEST resource embedded in the C++ DLLS, you will find out EXACTLY which Win SxS dlls are being referenced. You may need to add stuff to the manifest for the C++ DLLs for C++ specific stuff. Regards, Aris ---- "Wilson wrote: > If you have a recent version from http://www.dependencywalker.com (at least > version 2.2, I think) it handles SxS. > > > Phil Wilson > > > > -----Original Message----- > From: Christopher Painter [mailto:chr...@deploymentengineering.com] > Sent: Tuesday, June 08, 2010 5:17 AM > To: General discussion for Windows Installer XML toolset. > Subject: Re: [WiX-users] C++ Dependency Help > > Hmmm, I've not experienced depends / sxs issues in the past so I love to fill > in the knowledge gap possibly exposed by that question. And no, all my CA's > are written in C# using DTF. > > I'm told the application is broken. I did create a manifest for A.DLL > telling it had dependencies of the versions that B.dll had it helped depends > to resolve them. I haven't tried doing this in the actual application > though. I've also noticed that if I just deploy the unresolved DLL's > privately they end up being found. This of course introduces other concerns > such as not being able to service those dll's through microsoft hotfixes. > Perhaps this is acceptable though? > > My bigger concern though is how normal is it to go from a managed assembly > to a mixed mode assembly to a native assembly where A and B are built and > running against different versions of the C++ runtime. I'm ignorant in this > area ( my only C was ANSI C on Solaris 10+ years ago ) so I don't know if > this is normal or red flag stuff. > > I'm thinking about posting this on stack overflow but I was hoping to get an > answer from someone versed in both C++ and deployment considerations. > > > ----- Original Message ---- > From: dB. <dbl...@dblock.org> > To: General discussion for Windows Installer XML toolset. > <wix-users@lists.sourceforge.net> > Sent: Mon, June 7, 2010 8:39:05 PM > Subject: Re: [WiX-users] C++ Dependency Help > > Isn't depends simply busted for WinSxS? > > I assume the application doesn't run? Just in case, if those A.DLL and B.DLL > are custom actions this won't work - you have to install the CRTs outside of > the MSI (something about loading per-process). > > dB. @ dblock.org > Moscow|Geneva|Seattle|New York > > > -----Original Message----- > From: Christopher Painter [mailto:chr...@deploymentengineering.com] > Sent: Monday, June 07, 2010 7:01 PM > To: wix-users@lists.sourceforge.net > Subject: [WiX-users] C++ Dependency Help > > 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 > > > > > > ------------------------------------------------------------------------------ > 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 > > > *** Confidentiality Notice: This e-mail, including any associated or attached > files, is intended solely for the individual or entity to which it is > addressed. This e-mail is confidential and may well also be legally > privileged. If you have received it in error, you are on notice of its > status. Please notify the sender immediately by reply e-mail and then delete > this message from your system. Please do not copy it or use it for any > purposes, or disclose its contents to any other person. This email comes from > a division of the Invensys Group, owned by Invensys plc, which is a company > registered in England and Wales with its registered office at Portland House, > Bressenden Place, London, SW1E 5BF (Registered number 166023). For a list of > European legal entities within the Invensys Group, please go to > http://www.invensys.com/legal/default.asp?top_nav_id=77&nav_id=80&prev_id=77. > You may contact Invensys plc on +44 (0)20 7821 3848 or e-mail > inet.hqhelpd...@invensys.com. This e-mail and any attachments thereto may be > subject to the terms of any agreements between Invensys (and/or its > subsidiaries and affiliates) and the recipient (and/or its subsidiaries and > affiliates). > > > > ------------------------------------------------------------------------------ > 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