I'm trying to convert a project in Visual Studio 2008 from static linking of the CRT to dynamic linking. This was easy enough, and I added the CRT MSM and policy MSM to my Wix file with no problems.
I am not that happy with the MSI that is output开发者_StackOverflow社区 though, it is much larger than what I expected. Looking at the MSI with Orca shows three copies of the CRT DLLs that I need. From looking at the conditions, one of the sets is used for pre-XP installs. Since the system requirements are XP and later, how do I remove this component without touching the original MSM? This needs to be done in an automated build, so Orca isn't a possible solution. Plus, when I tried it with Orca, the filesize remained the same after deleting the File and Component rows.
And somewhat related, how do I set the permanent attribute in the components that remain?
A merge tool typically extracts the MergeMod.cabinet and rebuilds it into your Disk1 cab stream. I believe if you were to use a script to delete the component, file, modulecomponent rows out of the module prior to merging it would be stripped out.
精彩评论