如何将参数传递给自定义操作?
我正在尝试使用“值”属性创建自定义操作,我想将参数传递给C#代码(TARGETDIR和版本)。
但是,我收到一条错误消息,指出DLLENtry和Value无法共存。但是没有dllentry的自定义操作无效。
这是代码:
<CustomAction Id="SetMAWPrefferences" Value="InstallDir=[TARGETDIR];Version=2.0.0.1"
Return="check"
Execute="commit"
BinaryKey="ImportExportBinary"
/>
为此,我得到了这个错误:
错误9 ICE68:动作’SetMAWPrefferences’的自定义动作类型无效。
有什么想法怎么做?
回答:
注意,您Value
以错误的方式使用属性:
…此属性必须与Property属性一起使用才能设置属性…
Source
基于在C#中创建WiX自定义操作和传递参数一文,您应该:
创建具有所需值的属性:
<Property Id="InstallDir" Value="someDefaultValue" />
创建自定义操作以设置
InstallDir
属性:<CustomAction Id="SetDirProp" Property="InstallDir" Value="[TARGETDIR]" />
创建自定义操作:
<CustomAction Id="SetMAWPrefferences"
Return="check"
Execute="commit"
BinaryKey="ImportExportBinary"
DllEntry="YourCustomAction" />
计划自定义操作以在安装过程中执行:
<InstallExecuteSequence>
<Custom Action="SetDirProp" After="CostFinalize" />
<Custom Action="SetMAWPreferences" ... />
...
通过以下自定义操作访问这些属性:
[CustomAction]
public static ActionResult YourCustomAction(Session session)
{
// session[“InstallDir”]
// session[“Version”]
}
以上是 如何将参数传递给自定义操作? 的全部内容, 来源链接: utcz.com/qa/411623.html