It's really a bit worse than that! What's in the manifest in the program is useful, but if there's a policy manifest in WinSxS that redirects it, beware of that. I believe that the VC Redists will install policy manifests that redirect callers up to the latest. If you install using merge modules you may or may not have included the policy merge modules. For example on my Server 2003 system I have this for the VC80 runtime in a policy file:
<assemblyIdentity type="win32" name="Microsoft.VC80.CRT" processorArchitecture="x86" publicKeyToken="1fc8b3b9a1e18e3b"/> <bindingRedirect oldVersion="8.0.41204.256-8.0.50608.0" newVersion="8.0.50727.4053"/> <bindingRedirect oldVersion="8.0.50727.42-8.0.50727.4053" newVersion="8.0.50727.4053"/> Phil Wilson -----Original Message----- From: gree...@cox.net [mailto:gree...@cox.net] Sent: Tuesday, June 08, 2010 10:57 AM To: General discussion for Windows Installer XML toolset. Cc: Wilson, Phil Subject: Re: [WiX-users] C++ Dependency Help 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 *** 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