wix - 在安装过程中,如何让WiX调用.NET程序集中的方法?

标签 wix installation wix3.5 votive

我正在迁移一些现有产品以使用WiX 3.5(我正在使用Votive VS集成)。我要安装的某些物品需要在第三方框架中注册。要求是我必须在第三方.NET程序集中调用Register()方法,以将要安装的项目的存在通知给它。它需要一个COM ProgID。

我不知道如何让WiX做到这一点。我曾考虑过创建一个二进制“自定义操作”,但是找不到一种将参数(包含ProgID的字符串)传递给该自定义操作的方法。我不想对其进行硬编码,因为我需要它是可重用的代码。我看不到声明式执行此操作的方法,因为Register()函数是一个“黑匣子”。

男人,这是一条陡峭的学习曲线。我在这里最好的方法是什么?

最佳答案

查看WIX的Deployment Tools Foundation(DTF)。 WIX安装中有一个DTF.chm文件,其中包含很多信息。

假设您的安装过程类似于


设置安装,输入参数/ ProgID,进行验证等。
开始实际安装文件
通话注册方式


您将需要两个“自定义”操作(忽略回滚和卸载)


设置注册
注册


SetupRegistration应该是从UI或在设置阶段后期触发的立即自定义操作。它获取ProgID和所需的任何其他数据,使用CustomActionData对象,并将其分配给名为“ DoRegistration”的属性(重要的是,该属性名称必须与第二个自定义操作相同)

DoRegistration是一个延迟的自定义操作,可能需要在InstallFiles之后在InstallExecuteSequence中进行计划,但这要视情况而定。它提取Session.CustomActionData属性并获取ProgID,然后调用所需的任何注册方法。

关于wix - 在安装过程中,如何让WiX调用.NET程序集中的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3902677/

相关文章:

installation - 从WiX路径中删除尾部斜杠

java_home 设置不正确

windows - 使用 Platform 属性构建 WiX x86/x64

android - 如何使用 Google Analytics 跟踪来自 Google Play 的引荐来源安装?

c# - WiX CustomActionData 在调用的 CustomAction 中为空

c# - WiX - 通过 CustomAction 动态设置安装目录 [C#]

deployment - WIX - 修补后无法修补安装

wix - 为什么 Windows Installer 在删除过程中不使用 .msi 文件中的 UI?

wix - MSI 安装程序是否可以安装文件并终止而不留下足迹?

R: 安装包时 unloadNamespace(package) 的问题