2

如果自定义操作程序集有多个操作,DTF 不会调用第二个操作。它总是只调用第一个动作。作为一种解决方法,我在一个程序集中使用一个操作。它总是完美地工作。

你对这个问题有什么想法吗?

public class CustomActions
{

    [CustomAction]
    public static ActionResult CustomAction1(Session session)
    {
        [some code]
    }


    [CustomAction]
    public static ActionResult CustomAction2(Session session)
    {
        [some code]
    }

}
4

3 回答 3

1

我从来没有见过这个问题,因为我一直将自定义操作组合在一个程序集中。每个方法都将作为类型 1 入口点导出,然后您为每个导出的函数编写自定义操作。Windows Installer 调用 CA,CA 调用触发 CLR 的函数并调用自定义操作指向的静态方法。

于 2010-02-27T02:54:54.147 回答
1

可能对某些搜索者会有所帮助,尤其是对于 .Net 新手:仔细检查自定义操作条目的类和静态方法是否是公开的!

于 2011-01-19T17:35:06.663 回答
0

这似乎是一件显而易见的事情,但仍然如此。在 wxs 文件中定义自定义操作时,是否在“DllEntry”属性中指定不同的值?这个属性指出了一个方法,它实际上是你的 CA。如果您复制/粘贴自定义操作定义,您可能只是忘记更改 DllEntry...

于 2010-02-27T06:17:39.837 回答