http://channel9.msdn.com/forums/Coffeehouse/256077-MFC-dependencies-madness/?CommentID=323942
I might have thought about extracting the DLLs, but not seriously. Just as well:
http://channel9.msdn.com/forums/Coffeehouse/256077-MFC-dependencies-madness/?CommentID=324015
So that left me needing to author a custom bootstrapper package for MSBuild. I started with this tutorial, which has a few typos/bugs, but got me what I needed:
http://msdn.microsoft.com/en-us/library/aa730839%28VS.80%29.aspx
The particular EXE used is for MSXML6 SP2, and can be found here:
http://www.microsoft.com/downloads/details.aspx?familyid=59914795-60C7-4EBE-828D-F28CB457E6E3&displaylang=en
<?xml version="1.0" encoding="utf-8"?> <Product xmlns="http://schemas.microsoft.com/developer/2004/01/bootstrapper" ProductCode="Microsoft.MSXML.6.SP2"> <PackageFiles> <PackageFile Name="msxml6-KB954459-enu-x86.exe"/> </PackageFiles> <InstallChecks> <MsiProductCheck Property="IsMsiInstalled" Product="{1A528690-6A2D-4BC5-B143-8C4AE8D19D96}"/> </InstallChecks> <Commands> <Command PackageFile="msxml6-KB954459-enu-x86.exe" Arguments=""> <InstallConditions> <BypassIf Property="IsMsiInstalled" Compare="ValueGreaterThan" Value="0"/> <FailIf Property="AdminUser" Compare="ValueNotEqualTo" Value="True" String="NotAnAdmin"/> </InstallConditions> <ExitCodes> <ExitCode Value="0" Result="Success"/> <ExitCode Value="1641" Result="SuccessReboot"/> <ExitCode Value="3010" Result="SuccessReboot"/> <DefaultExitCode Result="Fail" String="GeneralFailure"/> </ExitCodes> </Command> </Commands> </Product>