2

カスタム アクション アセンブリに複数のアクションがある場合、DTF は 2 番目のアクションを呼び出しません。常に最初のアクションのみを呼び出します。回避策として、1 つのアセンブリで 1 つのアクションを使用しています。それは常に完璧に機能します。

この問題について何か考えはありますか?

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 つのアセンブリにまとめているため、この問題は見たことがありません。各メソッドはタイプ 1 エントリ ポイントとしてエクスポートされ、エクスポートされた関数ごとにカスタム アクションを記述します。Windows インストーラーは、CLR を起動する関数を呼び出す CA を呼び出し、カスタム アクションが指す静的メソッドを呼び出します。

于 2010-02-27T02:54:54.147 に答える
1

おそらく、一部の検索者、特に .Net 初心者にとっては役立つでしょう: カスタム アクション エントリのクラスと静的メソッドが public であることを再確認してください!

于 2011-01-19T17:35:06.663 に答える
0

当たり前のことのように思えるかもしれませんが、それでもなお。wxs ファイルでカスタム アクションを定義するとき、「DllEntry」属性に異なる値を指定しますか? この属性は、実際には CA であるメソッドを示します。カスタム アクションの定義をコピーして貼り付けると、DllEntry の変更を忘れてしまう可能性があります...

于 2010-02-27T06:17:39.837 に答える