问题描述
我想创建一个值属性,我想参数传递给C#code(在TARGETDIR和版本)。自定义操作
I'm trying to create a custom action with "Value" attribute, I want to pass parameters to the C# code (the TARGETDIR and the version).
不过,我得到一个错误,指出DLLENtry和值不能共存。但是,如果没有dllentry自定义操作是无效的。
However, I get an error stating that DLLENtry and Value cannot coexist. But the custom action without dllentry is invalid.
这是code:
<CustomAction Id="SetMAWPrefferences"
Value="InstallDir=[TARGETDIR];Version=2.0.0.1"
Return="check"
Execute="commit"
BinaryKey="ImportExportBinary"
/>
和它我得到这个错误:
错误9 ICE68:无效的自定义操作类型行动SetMAW prefferences。
任何想法怎么办呢?
推荐答案
请注意,您在使用值
在错误的道路属性:
Note, you're using Value
attribute in the wrong way:
...这个属性必须与物业使用属性来设置该属性...
根据在文章,你应该:
-
用需要的值创建的属性:
Create properties with desired values:
<Property Id="InstallDir" Value="someDefaultValue" />
<Property Id="Version" Value="2.0.0.1" />
创建自定义操作设置 INSTALLDIR
属性:
<CustomAction Id="SetDirProp" Property="InstallDir" Value="[TARGETDIR]" />
创建自定义操作:
Create custom action:
<CustomAction Id="SetMAWPrefferences"
Return="check"
Execute="commit"
BinaryKey="ImportExportBinary"
DllEntry="YourCustomAction" />
在安装过程中执行计划自定义操作:
Schedule custom actions for execution during installation process:
<InstallExecuteSequence>
<Custom Action="SetDirProp" After="CostFinalize" />
<Custom Action="SetMAWPreferences" ... />
...
</InstallExecuteSequence>
访问那些从你的自定义操作如下属性:
Access those properties from your custom action as follows:
[CustomAction]
public static ActionResult YourCustomAction(Session session)
{
// session["InstallDir"]
// session["Version"]
}
这篇关于如何将参数传递给自定义操作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!