本文介绍了如何将参数传递给自定义操作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个值属性,我想参数传递给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:

...这个属性必须与物业使用属性来设置该属性...

根据在文章,你应该:


  1. 用需要的值创建的属性:

  1. 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"]
    }
    


  • 这篇关于如何将参数传递给自定义操作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

    06-30 15:01