如果自定义操作程序集有多个操作,则DTF不会调用第二个操作。它总是只调用第一个动作。作为一种解决方法,我在一个程序集中使用一个动作。它始终完美无缺。
你对这个问题有什么看法吗?
public class CustomActions
{
[CustomAction]
public static ActionResult CustomAction1(Session session)
{
[some code]
}
[CustomAction]
public static ActionResult CustomAction2(Session session)
{
[some code]
}
}
答案 0 :(得分:1)
我从未见过这个问题,因为我一直在一个程序集中将自定义操作组合在一起。每个方法都将导出为类型1入口点,然后为每个导出的函数编写自定义操作。 Windows Installer调用CA,该CA调用激活CLR的函数并调用自定义操作指向的静态方法。
答案 1 :(得分:1)
对某些搜索者来说可能会有所帮助,特别是对于.Net新手:仔细检查自定义操作条目的类和静态方法是否公开!
答案 2 :(得分:0)
看起来似乎很明显,但仍然如此。在wxs文件中定义自定义操作时,是否在“DllEntry”属性中指定了不同的值?此属性指出一种方法,实际上是您的CA.如果您复制/粘贴自定义操作定义,则可能忘记更改DllEntry ...