如何将参数传递给用C#编写的托管代码dll的自定义操作?

时间:2013-08-20 11:48:37

标签: installshield

我有一个要求,我必须将3个参数传递给installshield中的托管代码自定义操作的c#代码。不能给出代码。请有人帮我解决这个问题的基本方法。提前谢谢。

3 个答案:

答案 0 :(得分:2)

由于您提及自定义操作,请参阅Specifying the Signature for a Managed Method in an Assembly Custom Action。指定需要传递给函数中参数的值或存储值的属性。请注意,如果这是一个延迟的自定义操作,您将需要通过CustomActionData传递它们,如第三段“为延迟,提交或回滚自定义操作使用自定义方法签名”中所述。

答案 1 :(得分:2)

Windows Installer XML(WiX)部署工具基础(DTF)提供了一个框架,用于为Windows Installer编写托管代码自定义操作。已编译的DLL显示为带有Type 1导出函数的标准Win32 DLL,并且与InstallShield完全兼容。

如果这是一个无处不在的自定义操作,您只需说:

string someProperty = sessions [“SOMEPROPERTY”];

如果是延迟的自定义操作,则使用立即自定义操作来构建CustomActionData类,然后将其序列化为字符串以传递给延迟的自定义操作,然后将其反序列化为CustomActionData类。 (基本上是一个有价值的词典)。

所需的背景阅读是:

Installation Phases and In-Script Execution Options for Custom Actions in Windows Installer

Reasons DTF is Better

答案 2 :(得分:0)