我正在迁移一些现有产品以使用 WiX 3.5(我正在使用 Votive VS 集成)。我正在安装的一些项目需要向第三方框架注册。要求是我必须在第三方 .NET 程序集中调用 Register() 方法来通知它我正在安装的项目是否存在。它需要一个 COM ProgID。
我不知道如何让 WiX 做到这一点。我考虑过创建一个二进制自定义操作,但我找不到将参数(包含 ProgID 的字符串)传递到该自定义操作的方法。我不想对其进行硬编码,因为我需要它成为可重用的代码。我看不到以声明方式执行此操作的方法,因为 Register() 函数是一个“黑匣子”。
伙计,这是一个陡峭的学习曲线。我在这里最好的方法是什么?
查看 WIX 的部署工具基础 (DTF)。 WIX 安装中有一个 DTF.chm 文件,其中包含大量信息。
假设你的安装过程是这样的
- setup安装,输入参数/ProgID,进行验证等
- 开始实际安装文件
- 来电登记方式
您将需要两个自定义操作(忽略回滚和卸载)
SetupRegistration 应该是从 UI 或在设置阶段后期触发的立即自定义操作。它获取 ProgID 和所需的任何其他数据,使用 CustomActionData 对象并将其分配给名为“DoRegistration”的属性(重要的是,属性名称必须与第二个自定义操作相同)
DoRegistration 是一个延迟的自定义操作,需要在 InstallExecuteSequence 中安排,可能在 InstallFiles 之后,但这取决于情况。它提取 Session.CustomActionData 属性并获取 ProgID,然后调用您需要的任何注册方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)