首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >作为安装过程的一部分,如何让WiX调用.NET程序集中的方法?

作为安装过程的一部分,如何让WiX调用.NET程序集中的方法?
EN

Stack Overflow用户
提问于 2010-10-11 07:39:18
回答 2查看 904关注 0票数 3

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

我想不出怎么让WiX这么做。我考虑过创建一个二进制自定义操作,但我找不到一种方法来将参数(包含ProgID的字符串)传递到该自定义操作中。我不想硬编码它,因为我需要它成为可重用的代码。我看不到声明式的方法,因为Register()函数是一个“黑盒”。

伙计,这是一条陡峭的学习曲线。我最好的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-06 06:21:42

看看WIX的部署工具基础(DTF)。WIX安装包中有一个包含大量信息的DTF.chm文件。

假设您的安装过程类似于

  1. 安装程序安装、输入参数/ProgID、执行验证等。
  2. 开始实际安装文件
  3. 调用注册方法

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

  • SetupRegistration
  • DoRegistration

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

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

票数 2
EN

Stack Overflow用户

发布于 2010-10-23 23:20:54

我使用了你所描述的一种方式。

我习惯于在需要的时候调用CustomAction(事件)。就像点击按钮一样,你可以调用一个为你工作的方法。

调用自定义操作,如:

<Custom Action="ActionName" After="InstallFinalize">CONDITION = "1"</Custom>

或者根据特定的按钮点击调用自定义操作:

代码语言:javascript
复制
<CustomAction Id="TestConnection" BinaryKey="SetupCustomActions" DllEntry="TestConnection" Execute="immediate" Return="check" />
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3902677

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档