如何自定义第三方 MSM 的功能?
我正在尝试将 Visual Studio 2008 中的项目从 CRT 的静态链接转换为动态链接。这很简单,我将 CRT MSM 和策略 MSM 添加到我的 Wix 文件中,没有出现任何问题。
我对输出的 MSI 不太满意,它比我预期的要大得多。使用 Orca 查看 MSI 显示了我需要的 CRT DLL 的三个副本。从情况来看,其中一套用于 XP 之前的安装。由于系统要求是XP及更高版本,如何在不触及原始MSM的情况下删除该组件?这需要在自动化构建中完成,因此 Orca 不是一个可行的解决方案。另外,当我用 Orca 尝试时,删除文件和组件行后文件大小保持不变。
和有些相关的是,如何在保留的组件中设置永久属性?
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 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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
合并工具通常会提取 MergeMod.cabinet 并将其重建到您的 Disk1 cab 流中。我相信,如果您在合并之前使用脚本从模块中删除组件、文件、模块组件行,那么它们将被删除。
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.